`

Rails开发流程

    博客分类:
  • Ruby
 
阅读更多
1. 画出页面流(Page Flow)

2. 画出要处理的数据(Data)草图

3. 与客户达成共识

4. 开始(创建deopt应用)
  
   C:\Users\Tony\Desktop\rails>rails new deopt
   


5. 创建products表对应的模型、试图、控制器和迁移任务。
  
   C:\Users\Tony\Desktop\rails\deopt>rails generate scaffold product title:string description:text image_url:string
   


6. 让Rails把这个迁移任务实施到开发数据库上
  
   C:\Users\Tony\Desktop\rails\deopt>rake db:migrate
   


7. 启动测试服务器
  
   C:\Users\Tony\Desktop\rails\deopt>rails server
   


8. 打开浏览器,看看效果:
  
   http://localhost:3000/products
   

   点击New Product

9. 添加缺失字段:(price)
  
   C:\Users\Tony\Desktop\rails>rails generate migration add_price_to_product price:decimal
   


   编辑文件:
  
   C:\Users\Tony\Desktop\rails\deopt\db\migrate\20120115034639_add_price_to_product.rb
   

   编辑后的代码为:
  
class AddPriceToProduct < ActiveRecord::Migration
  def self.up
    add_column :products, :price, :decimal,          
      :precision => 8, :scale => 2, :default => 0
  end

  def self.down
    remove_column :products, :price
  end
end
   


10. 再次运行数据迁移
  
   C:\Users\Tony\Desktop\rails\deopt>rake db:migrate
   


11. 上步执行后,我们仅仅处理了模型,控制的流程并没有改变,也就是说控制器不需要改变,需要改变的是视图,我们还需要修改四个文件:
   11.1 C:\Users\Tony\Desktop\rails\deopt\app\views\products\index.html.erb
  
<h1>Listing products</h1>

<table>
  <tr>
    <th>Title</th>
    <th>Description</th>
    <th>Image url</th>
    <th>Price</th>
    <th></th>
    <th></th>
    <th></th>
  </tr>

<% @products.each do |product| %>
  <tr>
    <td><%=h product.title %></td>
    <td><%=h product.description %></td>
    <td><%=h product.image_url %></td>
    <td><%=h product.price %></td>
    <td><%= link_to 'Show', product %></td>
    <td><%= link_to 'Edit', edit_product_path(product) %></td>
    <td><%= link_to 'Destroy', product, :confirm => 'Are you sure?', :method => :delete %></td>
  </tr>
<% end %>
</table>

<br />

<%= link_to 'New Product', new_product_path %>
   

   11.2 C:\Users\Tony\Desktop\rails\deopt\app\views\products\new.html.erb
  
<h1>New product</h1>
<% form_for(@product) do |f| %>
    <%= f.error_messages %>

    <p>
        <%= f.label :title %><br/>
        <%= f.text_field :title %>
    </P>

    <p>
        <%= f.label :description %><br />
        <%= f.text_area :description, :rows => 6 %>
    </p>

    <p>
        <%= f.label :image_url %><br />
        <%= f.text_field :image_url %>
    </P>

    <p>
        <%= f.label :Price %><br />
        <%= f.text_field :price %>
    </p>

    <p>
        <%= f.submit "Create" %>
    </p>

    <!--<%= render 'form' %>-->
<% end %>

<%= link_to 'Back', products_path %>
   

   11.3 C:\Users\Tony\Desktop\rails\deopt\app\views\products\edit.html.erb
  
 <h1>Editing product</h1>
<% form_for(@product) do |f| %>
    <%= f.error_messages %>

    <p>
        <%= f.label :title %><br/>
        <%= f.text_field :title %>
    </p>

    <p>
        <%= f.label :description %><br />
        <%= f.text_area :description %>
    </p>

    <p>
        <%= f.label :image_url %><br />
        <%= f.text_field :image_url %>
    </p>

    <p>
        <%= f.label :price %><br />
        <%= f.text_field :price %>
    </p>
<% end %>

<%= link_to 'Show', @product %> |
<%= link_to 'Back', products_path %>  
   

   11.4 C:\Users\Tony\Desktop\rails\deopt\app\views\products\show.html.erb
  
<p id="notice"><%= notice %></p>

<p>
  <b>Title:</b>
  <%=h @product.title %>
</p>

<p>
  <b>Description:</b>
  <%= @product.description %>
</p>

<p>
  <b>Image url:</b>
  <%=h @product.image_url %>
</p>

<p>
    <b>Price:</b>
    <%=h @product.price %>
</p>
<%= link_to 'Edit', edit_product_path(@product) %> |
<%= link_to 'Back', products_path %>
   


12. 点击New Product后页面最上方显示了这样的错误:error_messages_for was removed from Rails and is now available as a plugin
    需要做的一些修改:
    12.1 在 C:\Users\Tony\Desktop\rails\deopt\script下执行下面命令:
    C:\Users\Tony\Desktop\rails\deopt\script>rails plugin install git://github.com/rails/dynamic_form.git

    12.2 修改文件:C:\Users\Tony\Desktop\rails\deopt\Gemfile
    添加一行: gem 'dynamic_form'
    修改后的代码:
   
source 'http://rubygems.org'

gem 'rails', '3.0.9'

# Bundle edge Rails instead:
# gem 'rails', :git => 'git://github.com/rails/rails.git'

gem 'sqlite3'

gem 'dynamic_form'

# Use unicorn as the web server
# gem 'unicorn'

# Deploy with Capistrano
# gem 'capistrano'

# To use debugger (ruby-debug for Ruby 1.8.7+, ruby-debug19 for Ruby 1.9.2+)
# gem 'ruby-debug'
# gem 'ruby-debug19', :require => 'ruby-debug'

# Bundle the extra gems:
# gem 'bj'
# gem 'nokogiri'
# gem 'sqlite3-ruby', :require => 'sqlite3'
# gem 'aws-s3', :require => 'aws/s3'

# Bundle gems for the local environment. Make sure to
# put test-only gems in this group so their generators
# and rake tasks are available in development mode:
# group :development, :test do
#   gem 'webrat'
# end
    


    12.3 执行
    C:\Users\Tony\Desktop\rails\deopt>bundle install
    12.4 可以使用:
     C:\Users\Tony\Desktop\rails\deopt>bundle show
    查看所有gems的bundle。
  
分享到:
评论

相关推荐

    中文版rails教程

    **Rails开发流程** 在Rails开发中,通常遵循以下步骤: 1. **生成资源(Generating Resources)**:使用`rails generate`命令可以快速创建模型、控制器、视图等文件,如`rails generate scaffold Post title:...

    rails敏捷开发的购物车系统

    在本文中,我们将深入探讨如何使用Rails敏捷开发技术构建一个购物车系统,特别是在参考《rails敏捷开发第四版》中的...通过这个过程,开发者不仅可以学习到Rails的基本用法,还能掌握Web开发的通用实践和敏捷开发理念。

    源代码 for web开发敏捷之道:应用rails进行敏捷web开发(原书第4版)

    通过这些源代码,读者可以对照书中内容,逐步实现各个功能模块,遇到问题时可以直接查看代码实例,进行调试和修改,从而加深对Rails开发流程和最佳实践的理解。对于想要深入学习和掌握Rails的开发者来说,这是一份...

    Ruby On Rails开发实例-源代码

    本实例将帮助你深入理解和实践Rails的开发流程。 首先,让我们从基础开始。Ruby是一种面向对象的动态编程语言,它的语法简洁明了,易于阅读和编写。Rails则是利用Ruby构建Web应用的框架,它强调“约定优于配置”...

    使用Aptana+Rails开发Rails Web应用(中文)

    在开发Web应用时,Ruby on Rails(简称Rails)框架因其高效、简洁的代码风格和强大的社区支持而备受青睐。Aptana是一款强大的集成开发环境(IDE),尤其适用于Rails项目的开发,它提供了丰富的特性来提升开发效率。...

    Web开发敏捷之道--应用Rails进行敏捷Web开发 之 Depot代码。

    综上所述,这个压缩包提供的Depot项目是一个典型的Rails应用实例,适合初学者了解Rails框架的基本结构和敏捷开发流程。通过研究源码,开发者可以学习到如何组织代码、设置数据库、编写控制器逻辑、创建视图模板以及...

    ruby on rails最佳敏捷开发

    Ruby on Rails,简称Rails,是一种基于Ruby语言的开源Web应用框架,它遵循敏捷开发原则,致力于简化Web开发过程。Rails的核心理念是“Convention over Configuration”(约定优于配置),这意味着开发者可以减少大量...

    railsAPI

    测试是Rails开发流程的重要部分。Rails集成了测试框架如RSpec和MiniTest,允许开发者编写单元测试、集成测试和功能测试,确保代码的稳定性和可靠性。 安全方面,Rails提供了许多安全特性,如CSRF(跨站请求伪造)...

    基于ruby on rails开发示例源码

    通过这个示例源码,你可以看到这些原则在实际项目中的应用,从而提升你的Rails开发技能。 在深入学习这个示例之前,确保你已经安装了Ruby、Rails以及必要的开发环境。然后,使用`git clone`命令克隆项目,运行`...

    Ruby on Rails实例开发

    SQLite是一个轻量级的嵌入式数据库,常用于Rails开发中的开发和测试环境。它的优点在于无需独立服务器进程,直接在应用进程中运行,便于快速搭建和测试数据库驱动的应用。在Rails中,通过ActiveRecord可以轻松地进行...

    Ruby on Rails开发 从入门到精通实战教程.rar

    本资源是一套关于Ruby on Rails开发的全面教程,旨在帮助学习者从入门到精通掌握Ruby on Rails框架的开发技能。教程内容涵盖了Ruby语言基础、Rails框架搭建、Web应用开发、数据库操作、部署与维护等方面的知识。 ...

    应用Rails进行REST开发

    Rails框架中的Scaffolding工具是一种自动生成控制器、视图和模型的机制,极大地加速了开发过程。当使用Scaffolding时,开发者可以快速搭建起符合REST风格的基础应用程序,包括基本的CRUD操作。这不仅节省了大量的...

    eclipse的ruby on rails开发插件RadRails

    为了让Eclipse更好地适应Rails开发,诞生了名为RadRails的插件,它是专门为Eclipse设计的Rails开发工具集。 **RadRails 插件介绍** RadRails是Eclipse平台上的一个开源插件,专为Ruby on Rails开发者提供了一个...

    Ruby on Rails Web开发学习实录随书光盘(源代码).

    Ruby on Rails,简称Rails,是一种基于Ruby语言的开源Web应用框架,它遵循MVC(Model-View-Controller)架构模式,极大地简化了Web应用程序的开发流程。本资源为"Ruby on Rails Web开发学习实录随书光盘"的源代码,...

    ruby on rails(开发文档)

    Ruby on Rails,简称Rails,是一种基于Ruby语言的开源Web应用程序框架,它遵循MVC(Model-View-Controller)架构模式,极大地简化了Web应用的开发过程。Rails的哲学是“约定优于配置”,鼓励开发者遵循一套标准的...

    Ruby on rails开发从头来

    本教程将引导你从零开始学习Ruby on Rails的开发,通过一个具体的实例项目——Depot应用,让你深入理解Rails的工作原理和开发流程。 首先,让我们深入了解Ruby语言。Ruby是一种动态类型、面向对象的脚本语言,以其...

Global site tag (gtag.js) - Google Analytics