User
和Company
公司
class Company < ActiveRecord::Base
has_many :users, dependent: :destroy
validates :name,
presence: true,
uniqueness: true
accepts_nested_attributes_for :users
end
用户
class User < ActiveRecord::Base
belongs_to :company
validates :name,
presence: true
validates :company,
presence: true
end
我得到了哈希:
{:name=>"My Company", :users_attributes=>[{:name=>"My User"}]}
现在我运行以下内容:
params = {:name=>"My Company", :users_attributes=>[{:name=>"My User"}]}
company = Company.new params
company.save
这种行为是我所期待的。 company
无法保存,因为User
无效(验证:validates :company, presence: true
)
为此,我每次都使用一个关注类来执行以下操作:
所以我的问题是:
是否可以首先保存父级,并且在有效时将子级保存为第二部分,而不使用关注类?对于这种情况确实存在类似“accepts_nested_attributes_and_save_first_parent_for”的rails方式吗?
答案 0 :(得分:0)
你可以试试以下:
class Company < ActiveRecord::Base
has_many :users, dependent: :destroy, :inverse_of => :company
...
end
参见: