モデルで使用するscopeについて正しい理解をしたく、質問させていただきます。
今回、サイト内でプライベートメッセージの機能を作成したいと思っています。
従って、Conversationモデルとmessageモデルを作成しました。Conversationモデルは、
class_nameをUserとして、sender_idとrecipient_idというカラムを持っています。
それらが重複しないように、validates_uniqueness_ofを使い、以下のように書きました。
validates_uniqueness_of :sender_id, :recipient_id
ところが、他の資料を見ると、scopeを使って、これを設定していました。
validates_uniqueness_of :sender_id, :scope => :recipient_id
結果は、同じなので問題はないのですが、どうして、scopeを使ったのだろうと気になってしまい、
調べたのですが、よくわかりません。
私の理解では、scopeをモデル内で使う場合は、SQL文をメソッド化し、controller内で使用する例は
馴染み深いのですが、上記のような使い方は初めてでした。
これはどのように理解すれば良いでしょうか?
また、調べる際、どのようなキーワードで調べれば良いでしょうか?controllerなどで使うというよりも、
このモデル内で完結している処理のようです。
こちらはよくまとまっていたのですが、上記の使い方は乗っていなかったように思います。
https://www.sejuku.net/blog/26994
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/07/19 21:28 編集