0

ユーザー、アーミー、エンジニアの 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

エンジニアはフォーム上に作成できず、リンクまたはチェックボックスによって自動的に作成されますが、これは安全ではないようです。理想は、コントローラーで行われたことのように、これら 2 つの属性を自動割り当てすることです。例えば

example = current_user.examples.build(params[:example])

どう思いますか?彼らはこのデザインに代わるものですか?

質量割り当ては私にとってトリッキーな問題です.....

4

2 に答える 2

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)
于 2012-08-09T02:14:50.930 に答える
0

エンジニアとユーザーを明示的に関連付ける必要があるのはなぜですか? エンジニアをアーミーに関連付けると、そのエンジニアはアーミーを通じてユーザーとの関係を取得するのではないでしょうか?

于 2012-08-09T02:23:22.167 に答える