第四章 Rails背后的Ruby

4.1 导言

定义full_title帮助方法

$ vim app/helpers/application_helper.rb

module ApplicationHelper
        def full_title(page_title)
          base_title = "Ruby on Rails Tutorial Sample App"
        if page_title.empty?
                base_title
        else
          "#{base_title} | #{page_title}"
        end
  end
end

简化布局

$ vim app/views/layouts/application.html.erb

修改title

<title><%=full_title(:title)%></title>

 

更新现有的测试:

vim spec/requests/static_pages_spec.rb

require 'spec_helper'

describe "Static pages" do
  describe "Home page" do
    it "should have the content 'Sample App'" do
      visit '/static_pages/home'
      expect(page).to have_content('Sample App')
    end

    it "should have the base title" do
      visit '/static_pages/home'
      expect(page).to have_title("Ruby on Rails Tutorial Sample App")
    end

    it "should not have a custom page title" do
      visit '/static_pages/home'
      expect(page).not_to have_title("| Home")
    end
  .
  .
  .
end

运行测试,获得一个测试失败。

$ bundle exec rspec spec/requests/static_pages_spec.rb

为了让测试通过删除首页视图中的provide那行

 

4.2 字符串和方法

进入控制台

$rails console

posted @ 2013-12-04 18:19  salembe  阅读(133)  评论(0编辑  收藏  举报