我正在尝试使用指向另一个控制器的操作构建一个表单,但它不起作用
我的表格:
<%= form_for([@product,@product.subjects.build]) do |s| %>
表单在/products/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 :(得分: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
添加到attr_accessible
模型中的Subject
声明中。