2014-02-17 76 views
0

我試圖建立與動作的形式,指向另一個控制器,但它不工作的form_for鏈接到另一個控制器的Rails 4

我的形式:

<%= form_for([@product,@product.subjects.build]) do |s| %> 

的形式在渲染/產品/ show_sujet.html.erb

但我有此錯誤:

未知屬性:PRODUCT_ID

我不知道該怎麼辦?

subject.rb中

class Subject < ActiveRecord::Base 
belongs_to :product 
end 

Product.rb

class Product < ActiveRecord::Base 
has_many :comments, dependent: :destroy 
has_many :subjects 
validates :ean,:marque,:description, presence: true 
end 

非常感謝你:)

+0

你可以添加你從哪裏渲染你的表單...?還有你的show_subject方法..? –

回答

0

好像你還沒有創建主題模型後遷移數據庫。如果確實如此,請找到創建subjects表的遷移,並確保它添加了product_id的列。如果你沒有這個,你需要創建一個遷移這跟:

rails g migration addProductIdColumnToSubject product_id:integer 
rake db:migrate 

這將採取unknown attribute: product_id錯誤的照顧。

現在,如果您使用的是Rails 4,則需要在subjects控制器中將此屬性添加到strong parameters

Rails 3中,您需要將:product_id添加到Subject模型中的attr_accessible聲明中。

+0

謝謝Diego! 它的工作原理,但爲什麼我必須添加product_id?爲什麼rails不會在我運行rake db時自動添加它:migrate? 例如,我有另一個表的評論,這是關聯到另一個表的帖子,工作正常,沒有comment_id在遷移文件... 任何解釋? – CodeRevenger

+0

這將很好地解釋它:http://guides.rubyonrails.org/association_basics.html – DiegoSalazar

+0

Thks迭戈,我會檢查它;) – CodeRevenger

相關問題