[解決済み] 検索 vs 発見する by vs どこに
2022-02-09 11:17:36
質問
私はrailsの初心者です。レコードを検索する方法はたくさんあるようですね。
-
find_by_<columnname>(<columnvalue>)
-
find(:first, :conditions => { <columnname> => <columnvalue> }
-
where(<columnname> => <columnvalue>).first
そして、どれも全く同じSQLを生成してしまうようです。また、複数のレコードを検索する場合も同様だと思います。
-
find_all_by_<columnname>(<columnvalue>)
-
find(:all, :conditions => { <columnname> => <columnvalue> }
-
where(<columnname> => <columnvalue>)
どれを使えばいいのか、目安やおすすめはありますか?
どのように解決するのですか?
編集する。 この回答は非常に古く、この投稿がなされた後、他のより良い回答が出ています。 詳細は@Hossam Khamisが投稿した以下のものをご覧になることをお勧めします。
あなたのニーズに最も適したものを使ってください。
は
find
メソッドは、通常、IDで行を取得するために使用されます。
Model.find(1)
注目すべきは
find
は、指定した属性で項目が見つからなかった場合に例外をスローします。 使用方法
where
(後述するように、属性が見つからない場合は空の配列を返します) 例外が発生するのを防ぐためです。
その他の使用法
find
は通常このようなものに置き換わります。
Model.all
Model.first
find_by
は、カラム内の情報を検索する際のヘルパーとして使用され、命名規則で対応づけられている。 例えば、カラムの名前を
name
のような構文になります。
Model.find_by(name: "Bob")
.where
は、従来のヘルパーではうまくいかない場合にもう少し複雑なロジックを使用できるようにするためのキャッチオールであり、条件に一致する項目の配列 (あるいはそれ以外の場合は空の配列) を返します。
関連
-
[解決済み] pg gem をインストールしようとすると 'libpq-fe.h' ヘッダが見つからない
-
[解決済み] rake db:migrateを使って1ステップだけロールバックする方法
-
[解決済み] PG::ConnectionBad - サーバーに接続できませんでした。接続が拒否されました。
-
[解決済み] gemのアップデート後、"Asset was not declared to be precompiled in production "でテストが失敗する。
-
[解決済み] Heroku: 既存のrailsアプリにseeds.rbをプッシュする方法?
-
[解決済み] 属性とカラムの違いは何ですか?
-
[解決済み] NOT NILを使ったRailsのWHEREコンディション
-
[解決済み】Ruby on Rails。グローバル定数を定義する場所はどこですか?
-
[解決済み】Railsのプロダクションでconfig.assets.compile=true、なぜダメなのか?
-
[解決済み】Rubyで複数行の長い文字列を改行せずに分割する方法
最新
-
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)
-
[解決済み】Webpacker::Manifest::MissingEntryError【クローズド
-
[解決済み] rake db:migrateを使って1ステップだけロールバックする方法
-
[解決済み] Ruby on Railsのためにnetbeansを構成する方法は?
-
[解決済み] Railsマイグレーションを利用してカラムをドロップする方法
-
[解決済み] Railsでpng画像を文字列形式で表示するには?
-
[解決済み] Herokuの問題 : あなたが探しているページは存在しません。
-
[解決済み] RubyとRailsの "Date.today "フォーマット
-
[解決済み] ルビーオンレール モデルから明確な値を選択する
-
[解決済み] railsでcheck_boxをcheckedにする方法は?