2011-05-20 114 views
1
SyntaxError in Videos#show 

Showing /rubyprograms/dreamstill/app/views/videos/show.html.erb where line #54 raised: 

compile error 
/Library/Ruby/Gems/1.8/gems/activemodel-3.0.4/lib/active_model/attribute_methods.rb:272: syntax error, unexpected ')' 
/Library/Ruby/Gems/1.8/gems/activemodel-3.0.4/lib/active_model/attribute_methods.rb:273: syntax error, unexpected '?', expecting $end 
Extracted source (around line #54): 

51:   <%= link_to "Show Song", '#', :id => 'video_show_link', :class => 'edit' %> 
52:  
53:   <div id="showable_video_div"> 
54:    <%= form_for [@video, @video.showable_videos.new ], :url => showable_videos_path, :remote => true do |f| %> 
55:     <%= f.hidden_field :video_id, :value => @video.id, :id => "video_id_field" %> 
56:     <%= f.text_field :user, :class => "showable_field" %> 
57:    <% end %> 

這是遷移到我做得對拋出的錯誤之前的showable_videos表:我的語法錯誤在哪裏?

class AddUpvotedAndSeenToShowableVideos < ActiveRecord::Migration 
    def self.up 
    add_column :showable_videos, :upvoted?, :boolean 
    add_column :showable_videos, :seen?, :boolean 
    end 

    def self.down 
    remove_column :showable_videos, :seen? 
    remove_column :showable_videos, :upvoted? 
    end 
end 
+0

什麼是'[@video,@ video.showable_videos.new]'應該產生? – theIV 2011-05-20 04:44:59

+1

語法錯誤在您的標題中。 Wheres ==> – sawa 2011-05-20 04:47:24

+0

在視頻模型中:'has_many:showable_videos' – user730569 2011-05-20 04:47:41

回答

1

我只是解開上面的遷移,然後再次運行遷移,而在列名?。我不再聽到語法錯誤。

+0

事實上,這將解決它,Rails自動提供這些方法,所以如果你自己添加它在該列上將不起作用。 – Bitterzoet 2011-05-20 07:53:06

+1

你應該接受你的回答;)你也可能會報告Rails中的一個錯誤(我想它也可能是文檔中的一個錯誤)。 Rails應該返回一個錯誤,指出在Rails表列名稱中問號是不合法的。例如,PostgreSQL允許你創建這樣的列。由於Rails使用問號(「name?」代表屬性「name」)定義閱讀器方法,因此在基本列中使用此字符可能有問題。 – Arsen7 2011-05-20 08:08:08