タグ

callbackに関するtakaesuのブックマーク (5)

  • Rails 5.1 以降で attribute_was, attribute_change, attribute_changed?, changed?, changed 等が DEPRECATION WARNING - Qiita

    Rails 5.1 以降で attribute_was, attribute_change, attribute_changed?, changed?, changed 等が DEPRECATION WARNINGRails 何が起きたか? Rails 5.1 へアップデートして大量に DEPRECATION WARNING や spec エラーが起きたので、調べてみると Rails 5.1 で ActiveRecord::AttributeMethods::Dirty の attribute_was attribute_change attribute_changed? changed? changed 辺りが非推奨になった。 参考: https://github.com/rails/rails/blob/ce93740a5e4437dfc1cf9b0b13da1bad06a2a598/

    Rails 5.1 以降で attribute_was, attribute_change, attribute_changed?, changed?, changed 等が DEPRECATION WARNING - Qiita
  • Railsの意外な落とし穴? before_xxx で false を返すと処理を停止するが、 nil を返すと続行する - Qiita

    はじめに、というか最初に結論 この記事では以下のようなRails(ActiveRecord)のコールバック仕様を説明します。 before_xxx が false を返した場合のみ保存処理が停止する before_xxx が nil を返した場合や、after_xxx が false を返した場合はそのまま保存される この仕様を知らなかった人は先に進みましょう。 知っていた人も興味があれば続きを読んでください。 動作確認したRailsバージョン Rails 4.2.4 Railsあるある問題のひとつ、「before_xxx の戻り値を間違える」 知っている人は知っている、そして知っている人でもたまにうっかり間違える、Railsのよくある落とし穴として before_valdiation や before_save の戻り値のワナがあります。 この問題については @suginoy さんがドン

    Railsの意外な落とし穴? before_xxx で false を返すと処理を停止するが、 nil を返すと続行する - Qiita
    takaesu
    takaesu 2015/11/12
    before , after で falseをするとそれ以降の処理が止まる。Rails5ではthrow(:abort)で止める
  • Railsのcallbackについて調べた - Qiita

    色々詰まったので勉強がてらまとめてみた Railsのバージョンは3.2 callbackとは オブジェクトの生成・更新・削除のタイミングで呼び出されるメソッド トリガとなるイベント(create, saveなど)の前後に登録可能 トリガに対してメソッドを共通化できて便利 callbackの順番 create,update,find,destroyでまとめた それぞれ上から順番に実行される create hoge = Hoge.new(name: "hoge") # initialize after_initialize #newメソッドで生成したときのみ hoge.save! # BEGIN TRANSACTION before_validation # validation after_validation # ROLLBACK after_rollback #validationに失敗

    Railsのcallbackについて調べた - Qiita
  • docrails/association_basics.md at develop · hachi8833/docrails · GitHub

    Active Recordの関連付け(アソシエーション) このガイドでは、Active Recordの関連付け機能(アソシエーション)について解説します。 このガイドの内容: Active Recordのモデル同士の関連付けを宣言する方法 Active Recordのモデルを関連付けるさまざまな方法 関連付けを作成すると自動的に追加されるメソッドの使用方法 関連付けを使用する理由 モデルとモデルの間には関連付けを行なう必要がありますが、その理由を御存じでしょうか。関連付けを行なうのは、それによってコード内で一般的に行われる操作をはるかに簡単にできるからです。簡単なRailsアプリケーションを例にとって説明しましょう。このアプリケーションには顧客用のモデル(Customer)と注文用のモデル(Order)があります。一人の顧客は、多くの注文を行なうことができます。関連付けを設定していない状態

    docrails/association_basics.md at develop · hachi8833/docrails · GitHub
  • Railsのコールバックまとめ | TECHSCORE BLOG | TECHSCORE BLOG

    こんにちは、鈴木です。 Techscore 体の記事の下書きを書き進めています。 ということで、コールバックの記事の下書きを公開します。 コールバックの種類 コールバックとは、バリデーションの実行やデータベースへの保存などのタイミングで処理を行うための機能です。 あるタイミングで必ず実行する必要がある処理をコールバックに指定することで、モデルの一貫性を保つことができます。 Rails のコールバックの種類をまとめてみると、非常に多いことが分かります。 after_find 検索メソッドでオブジェクトが見つかったタイミングで実行されます。 検索条件を指定せずに all メソッドを呼び出すなど、検索結果が大量になる場合は注意が必要です。 検索結果の数だけコールバックが実行されますので、パフォーマンスに重大な影響を及ぼす可能性があります。 after_initialize オブジェクトがインス

  • 1