我什么时候应该使用“accepts_nested_attributes_for”?在下面的示例中,我可以成功地执行“user.microposts.create”而无需在User模型中使用“accepts_nested_attributes_for”。
class Micropost < ActiveRecord::Base
belongs_to :user
end
class User < ActiveRecord::Base
has_many :microposts
end
答案 0 :(得分:3)
accepts_nested_attributes_for
只是一个捷径。它定义了一个动态属性{field_name}_attributes
,这样如果你有一个表单,你可以包含嵌套属性并让它自动将它们分配给一个关联。像这样:
form_for :object do |f|
f.text_field :attr1
f.text_field :attr2
f.fields_for :association_attributes do |g|
g.text_field :nested1
g.text_field :nested2
end
end
此帖子包含参数{object: {attr1: val, attr2: val, association_attributes: {nested1: val, nested2: val}}
,并在您的班级中添加accepts_nested_attributes_for :association
,这样就无需任何额外代码即可使用。