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)