-1.
- $ rails generate rspec:install
- $ rails generate integration_test static_pages
0.
- $ rails generate controller FooBars baz quux
- $ rails destroy controller FooBars baz quux
- $ rails generate model Foo bar:string baz:integer
- $ rails destroy model Foo
- $ rake db:migrate
- $ rake db:rollback
- $ rake db:migrate VERSION=0
1.设置一下让 Rails 使用 RSpec 而不用 Test::Unit
- rails generate rspec:install
2.通过命令行创建两个动作
- rails generate controller StaticPages home help --no-test-framework
3.
- $ rails generate controller FooBars baz quux
- $ rails destroy controller FooBars baz quux
- $ rails generate model Foo bar:string baz:integer
- $ rails destroy model Foo
- $ rake db:migrate
- $ rake db:rollback
- $ rake db:migrate VERSION=0
4. Rails 在 StaticPages 控制器中寻找
home
动作,然后执行该动作,再渲染相应的视图。在本例中,home
动作是空的,所以访问 /static
pages/home 后只会渲染视图。
5.在测试驱动开发中,我们先写一个会失败的测试,在很多测试工具中会将其显示为红色。然后编写代码让测试通过,显示为绿色。
最后,如果需要的话,我们还会重构代码,改变实现的方式(例如消除代码重复)但不改变功能。这样的开发过程叫做“遇红,变绿,重构(Red, Green, Refactor)”。
6.
生成测试代码
- rails generate integration_test static_pages
- bundle exec rspec spec/requests/static_pages_spec.rb
7.动态网页
通过 <% ... %>
调用 Rails 中的 provide
函数,然后将字符串 'Home'
赋给 :title
。
然后,在标题中,我们使用类似的符号 <%= ... %>
通过 Ruby 的 yield
函数将标题插入模板中
- <% provide(:title, 'Home') %>
- <!DOCTYPE html>
- <html>
- <head>
- <title>Ruby on Rails Tutorial Sample App | <%= yield(:title) %></title>
- </head>
- <body>
- <h1>Sample App</h1>
- <p>
- This is the home page for the
- <a href="http://railstutorial.org/">Ruby on Rails Tutorial</a>
- sample application.
- </p>
- </body>
- </html>
<% ... %>
执行
其中的代码,
<%= ... %>
也会执行其中的代码,而且会把执行的结果插入模板中
8.网站布局
将每一页的内容插入布局中
- <%= yield %>