我有3个型号,用户,陆军和工程师。当用户创建属于他们的军队时,他们可以选中一个名为siege
的复选框,该复选框将创建属于该军队和用户的工程师。我对质量任务感到担忧。工程师在我的军队模型中通过我的方法创建:
attr_reader :siege
after_save :if_siege
private
def if_siege
if self.siege
Engineer.create!( :user_id => self.user.id, :army_id => self.id )
end
end
end
但我知道要分配两个ID的唯一方法是在我的工程师模型中执行此操作:
class Engineer
attr_accessible :user_id, :army_id
即使工程师永远不能在表单上创建但是会自动通过链接或复选框创建,这似乎并不安全。理想的是自动分配这两个属性,如在控制器中完成的任务。例如
example = current_user.examples.build(params[:example])
对于我来说,群发作业是个棘手的问题......
答案 0 :(得分:2)
出了什么问题:
engineer = Engineer.new
engineer.user_id = self.user.id
engineer.army_id = self.id
engineer.save!
您也可以在此指定您不关心质量分配问题:
params = { :user_id => self.user.id, :army_id => self.id }
Engineer.create!(params, without_protection: true)
答案 1 :(得分:0)
为什么需要明确地将工程师与用户联系起来?如果你将工程师与陆军联系起来,工程师是不是会通过军队与用户建立关系?