モデルでcurrent_userを取得することは悪いことです。私はまたそれを行う方法があることを知っています(スレッドで)。しかし、私はこのようにしたくない(それは確かに悪い考えです)、私はこれを別の方法で達成することについて意見を述べたいと思います。after_createフィルタで現在のユーザを取得する
ユーザーは、一族を作成することができ、作成すると、彼はリーダーでなければなりません。クランモデルは:
class Clan < ActiveRecord::Base
after_create :assign_leader
# the person who created the clan is the leader
def assign_leader
self.clan_memberships << ClanMembership.new(:user_id => ???, :role => 'leader')
end
end
私はちょうどコントローラのメンバーシップを作成することができます知っている:しかし、私はそのようなフィルタはトランザクションとして動作し、私は非常にこれのためのフィルタを好むだろう。しかし、実際にここでこれを行う正しい、非ハッカー的な方法がありますか?
仮想属性の使用はどうですか?私は、user_idという名前のClanモデルで仮想属性を使用し、Clanを作成する際に仮想属性を設定することを意味します。仮想属性はself.user_idからアクセス可能です – mohamagdy