2013-06-13 44 views
0

我正在通過Ruby on Rails 2nd Ed。,Hartl工作。在3.3.3節中,我用一些嵌入式Ruby刪除了一些靜態文本後,我的測試失敗了。測試通過以前沒有問題。Ruby on Rails嵌入式紅寶石生成錯誤

rspec的

require 'spec_helper' 

    describe "Home pages" do 

     describe "Home page" do 
     it "should have the h1 'Sample App'" do 
      visit '/static_pages/home' 
      page.should have_selector('h1', :text => 'Sample App') 
     end 

     it "should have the title 'Home'" do 
      visit '/static_pages/home' 
      page.should have_selector('title', :text => "Ruby on Rails Tutorial Sample     App | Home") 
     end 
     end 
    end 

home.html.erb

<% 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> 

從控制檯

C:\Sites\rails_projects\sample_app>bundle exec rspec   spec/requests/static_pages_spec.rb 
    ?[31mF?[0m?[31mF?[0m?[32m.?[0m?[32m.?[0m?[32m.?[0m?[32m.?[0m 

    Failures: 

     1) Home pages Home page should have the h1 'Sample App' 
     ?[31mFailure/Error:?[0m ?[31mvisit '/static_pages/home'?[0m 
     ?[31mActionView::Template::Error:?[0m 
      ?  [31mC:/Sites/rails_projects/sample_app/app/views/static_pages/home.html.erb:1: syntax   error, 
    unexpected ',', expecting ')'?[0m 
      ?[31m...putBuffer.new; provide (:title, ' Home') ?[0m 
      ?[31m...        ^?[0m 
      ?  [31mC:/Sites/rails_projects/sample_app/app/views/static_pages/home.html.erb:1: syntax   error, 
    unexpected ')', expecting keyword_end?[0m 
      ?[31m....new; provide (:title, ' Home') ?[0m 
      ?[31m...        ^?[0m 
    ?[36m  # <internal:prelude>:10:in `synchronize'?[0m 
    ?[36m  # ./spec/requests/static_pages_spec.rb:7:in `block (3 levels) in <top   (required)>'?[0m 

     2) Home pages Home page should have the title 'Home' 
     ?[31mFailure/Error:?[0m ?[31mvisit '/static_pages/home'?[0m 
     ?[31mActionView::Template::Error:?[0m 
      ?  [31mC:/Sites/rails_projects/sample_app/app/views/static_pages/home.html.erb:1: syntax   error, 
    unexpected ',', expecting ')'?[0m 
      ?[31m...putBuffer.new; provide (:title, ' Home') ?[0m 
      ?[31m...        ^?[0m 
      ?  [31mC:/Sites/rails_projects/sample_app/app/views/static_pages/home.html.erb:1: syntax   error, 
    unexpected ')', expecting keyword_end?[0m 
      ?[31m....new; provide (:title, ' Home') ?[0m 
      ?[31m...        ^?[0m 
    ?[36m  # <internal:prelude>:10:in `synchronize'?[0m 
    ?[36m  # ./spec/requests/static_pages_spec.rb:12:in `block (3 levels) in <top   (required)>'?[0m 

    Finished in 0.51562 seconds 
    ?[31m6 examples, 2 failures?[0m 

    Failed examples: 

    ?[31mrspec ./spec/requests/static_pages_spec.rb:6?[0m ?[36m# Home pages Home page   should have the h1 'Sample App'?[0m 
    ?[31mrspec ./spec/requests/static_pages_spec.rb:11?[0m ?[36m# Home pages Home page   should have the title 'Home'?[0m 

錯誤任何幫助表示讚賞

回答

2

我認爲你需要刪除空白在t之前他圓括號

provide (:title, 'Home') 

應該

provide(:title, 'Home') 
+0

它現在的工作。這是空白。謝謝。我知道它必須是簡單的東西,就是看不到它。好工作muttonlamb! – JanuskaE

+0

就像未來的FYI一樣,Ruby可以對括號做些挑剔。忽略括號(顯然)時可以留空白,但如果將它放在方法調用和括號之間,有時會產生混淆。儘管這並不適用,但最好保持一致,並確保在括號之前不留空格 – muttonlamb