34

作成後に2つのメソッドを呼び出そうとしていますが、それらを配列に配置しても機能しません... railsdocsまたはgoogleに何も見つかりません...経験のある人はいますか?

after_create [:do_this, :do_that]

動作しません

4

4 に答える 4

90

メソッドを配列で囲む必要はありません。単に使用してください:

after_create :do_this, :and_then_this

ボーナス情報before_*コールバックがfalseを返す場合、それ以降のすべてのコールバックと関連するアクションはキャンセルされます。コールバックがfalseを返す場合、after_*それ以降のすべてのコールバックはキャンセルされます。コールバックは、最後に呼び出されるモデルのメソッドとして定義されたコールバックを除いて、通常、定義された順序で実行されます。

于 2013-01-18T02:43:12.540 に答える
3

単一のメソッドを呼び出して、そのメソッドで順序を調整することもできます。

after_create :process


def process
  do_this
  do_that
  then_this
end

私は個人的にこのアプローチを好みます。隠された魔法はありません。

于 2020-06-15T15:47:33.117 に答える
2

なぜ2つのコールバックメソッドを配列に入れるのですか?

after_create:do_this、:do_that

于 2013-01-18T02:39:42.883 に答える
0

注意してください、after_action反転しているようです。


after_action :do_that_after, :do_that_before

現在実行されている注文do_that_beforedo_that_after

編集:Rails6.0.3.3を使用

于 2020-09-23T08:56:26.893 に答える