Ruby-on-rails-rails-finders

提供:Dev Guides
移動先:案内検索

Ruby on Rails-ファインダー

以下は、条件の有無にかかわらずレコードを見つける方法です-

以下は、ID 50の著者を見つけます。

Author.find(50)

以下は、ID 20、30、40の著者を検索します。

Author.find([20,30, 40])

以下は、すべての著者を見つけるでしょう-

Author.find :all

以下は、_alam_という名の著者をすべて検索します。

Author.find :all
            :condition => ["first_name =?", "alam" ]

次は、_alam_という名の著者の最初のレコードを検索します。

Author.find :first
            :condition => ["first_name =?", "alam" ]

ファインダーのオプション

次のオプションを find 関数とともに使用できます。

  • *:order ⇒ 'name DESC' *このオプションを使用して、結果を昇順または降順に並べ替えます。
  • *:offset ⇒ 20 *オフセット20からレコードのフェッチを開始します。
  • *:limit ⇒ 20 * 20レコードのみを返します。
  • *:group ⇒ 'name' *これは、SQLフラグメントGROUP BYと同等です。
  • *:joins ⇒ LEFT JOIN …​ '*追加のLEFT JOIN(まれに使用)。
  • *:include ⇒ [:account、:friends] *これは、これらのモデルのLEFT OUTER JOINです。
  • :select ⇒ [:name、:address] *SELECT FROMの代わりにこれを使用します。
  • *:readonly ⇒ true *これを使用して、オブジェクトを書き込み禁止にします。

動的な属性ベースのファインダー

より動的な関数を使用して値を取得できます。

フィールド* user_name、*がある場合、次を使用してユーザー名でレコードを検索できます。

Person.find_by_user_name(user_name)

フィールド* last_name、*がある場合、次を使用して姓でレコードを検索できます。

Person.find_all_by_last_name(last_name)

フィールド user_name および password がある場合、次を使用して、指定されたユーザー名とパスワードのレコードを検索できます。

Person.find_by_user_name_and_password(user_name, password)