Ruby on Rails 3 - 当您已经可以通过父级保存时,为什么要使用 "accepts_nested_attributes_for"?



什么时候应该使用"accepts_nested_attributes_for"? 在下面的示例中,我可以成功地执行"user.microposts.create",而无需在用户模型中进行"accepts_nested_attributes_for"。

class Micropost < ActiveRecord::Base
  belongs_to :user
end
class User < ActiveRecord::Base
  has_many :microposts
end

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添加到您的类中,使整个事情无需任何额外的代码即可工作。

相关内容

  • 没有找到相关文章

最新更新