我有三个型号。在我的Rails应用程序中,它们看起来如下所示(为简洁起见省略了不必要的代码):
class User < ActiveRecord::Base
has_many :schedules
has_many :payouts, :through => :schedules
accepts_nested_attributes_for :schedules
end
class Schedule < ActiveRecord::Base
belongs_to :user
belongs_to :payout
end
class Payout < ActiveRecord::Base
has_many :schedules
has_many :users, :through => :schedules
end
这是典型的Rails与直通模型的多对多关联。但是,在前端,当将JSON与POST组合到用户的控制器时,我需要包含尚未创建的user_id。
JSON看起来像这样:
{
"user": {
"schedules_attributes": [{
"payout_id": 5,
"user_id": null
}]
}
}
上述JSON的问题在于user_id
未设置,因为它已被创建。该怎么做?
答案 0 :(得分:0)
如果您要创建新用户和一些关联的计划,则无需为计划指定user_id,Rails将在创建用户记录后自动设置。这就是accepts_nested_attributes_for的工作方式。