我有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])
你认为如何?他们是这种设计的替代品吗?
批量分配对我来说是一个棘手的问题.....
发布于 2012-08-09 10:14:51
问题出在哪里:
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)发布于 2012-08-09 10:23:22
为什么你需要明确地把工程师和用户联系起来?如果您将工程师与陆军联系起来,那么该工程师不会通过陆军将关系传递给用户吗?
https://stackoverflow.com/questions/11875828
复制相似问题