0

私は自分の中で行動を起こします

class User < ActiveRecord::Base
  def follow_user(following_id)
      Friendship.create(:following_id => following_id, :follower_id => self.id)
  end
end

登録時にデフォルトでユーザーをフォローさせることができるように、このアクションを実行する必要があります...それが理にかなっていることを願っています。

4

1 に答える 1

0

after_createこれを実現するために、ユーザーモデルで、オブジェクトのライフサイクルの特定の時点で呼び出されるメソッドであるコールバックを使用できる必要があります。

Railsガイドでコールバックの詳細を読むことができます。User基本的に、あなたはあなたのモデルでこのようなことを言いたいです。

after_create: :follow_user

次に、follow_user目的を達成するためのメソッドを記述します。Useraが作成されるたびに、follow_userが実行されます。あなたのコードに基づいて、私follow_userは、作成時だけでなく、あるユーザーが別のユーザーをフォローするときはいつでも使用されるメソッドであると思います(したがって、パラメーターを渡します)。検証でパラメーターを渡すことを回避するために、デフォルトの引数を設定して、パラメーターを渡さずにメソッドが呼び出された場合に、「デフォルト」のユーザーがフォローされるようにします。このようなもの:

def follow_user(following_id = 1)
  code
end
于 2012-04-26T14:35:37.567 に答える