[解決済み] Rails find_or_create_by 複数の属性?
2022-04-13 02:32:03
質問
active-recordには、find_or_create_byという便利な動的属性があります。
Model.find_or_create_by_<attribute>(:<attribute> => "")
しかし、複数の属性でfind_or_createする必要がある場合はどうしたらよいでしょうか?
例えば、GroupMemberというグループとメンバーのM:Mリレーションシップを扱うモデルがあるとします。member_id = 4 のインスタンスをたくさん持つことができますが、member_id = 4 と group_id = 7 のインスタンスは1つも欲しくはないです。
GroupMember.find_or_create(:member_id => 4, :group_id => 7)
もっと良い処理方法があるかもしれませんが、find_or_createのアイデアの利便性が気に入っています。
どのように解決するのですか?
複数の属性は
and
:
GroupMember.find_or_create_by_member_id_and_group_id(4, 7)
(使用
find_or_initialize_by
すぐにレコードを保存しない場合)
編集する。 上記の方法はRails 4で非推奨となり、新しい方法となります。
GroupMember.where(:member_id => 4, :group_id => 7).first_or_create
と
GroupMember.where(:member_id => 4, :group_id => 7).first_or_initialize
2を編集します。 これらは、属性に応じたものだけで、すべてレールに織り込まれているわけではありません。
https://github.com/rails/rails/blob/4-2-stable/guides/source/active_record_querying.md
例
GroupMember.find_or_create_by_member_id_and_group_id(4, 7)
になった
GroupMember.find_or_create_by(member_id: 4, group_id: 7)
関連
-
[解決済み】コレクションをDESCで並べる方法
-
[解決済み] Railsマイグレーションを利用してカラムをドロップする方法
-
[解決済み] Ruby:Rubyの配列にinclude.の反対はある?
-
[解決済み] Rails: カラムからユニークな値を選択する
-
[解決済み] Ruby on Railsのマイグレーションでデータベースのカラムの名前を変更するにはどうすればよいですか?
-
[解決済み] Ruby on Railsで現在の絶対URLを取得するにはどうすればよいですか?
-
[解決済み] エラーが発生しました。pgsqlをrailsで動作させようとすると、Peer authentication failed for user "postgres" と表示されます。
-
[解決済み] Ruby on RailsでJSON出力を "きれい "にフォーマットする方法
-
[解決済み] Rails 4で懸念事項を使用する方法
-
[解決済み】Railsの認証トークンを理解する
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] gemのインストールができない - gemネイティブ拡張の構築に失敗 - そのようなファイルをロードできない -- mkmf (LoadError)
-
[解決済み] どのようにrailsでラジオボタンを正しく使用するには?
-
[解決済み] PG::ConnectionBad - サーバーに接続できませんでした。接続が拒否されました。
-
[解決済み] Rubyのクラスで未初期化の定数エラーが発生する
-
[解決済み] Railsでpng画像を文字列形式で表示するには?
-
[解決済み] Oauth2 Instagram API "リダイレクトURIが登録されたリダイレクトURIと一致しない"
-
[解決済み] Railsです。gemを使った特定バージョンのライブラリのアンインストール
-
[解決済み] Rails / Haml: 投稿フォームを作成するには?
-
[解決済み] RSpecとCucumberの違いは何ですか?[クローズド]
-
[解決済み] 未初期化の定数 "コントローラ名"