0

ActiveRecord を使用して単純なフェッチを実行しようとしていますが、結果に混乱しています。これは私が実行しようとしているコードです

c = Child.where("name LIKE ?", "%John D%")

データベースに子モデルと対応するテーブルがあります。Railsコンソールで見つかったとして出力されるデータベースに「John Doe」のレコードがあります。ただし、実行すると

c.name

出力します

=> "Child"

それ以外の

=> "John Doe"

私が走れば

c = Child.find_by_name("John Doe")

すべて正常に動作します。ここには明らかな解決策があると確信していますが、それを理解できないようです。

4

1 に答える 1

3

ActiveRecord Relationwhereを返します。あなたがそれをするなら、あなたに与えるでしょう。実際のオブジェクトを取得するには、次のようにします。c.classActiveRecord::Relation::ActiveRecord_Relation_Child

c = Child.where("name LIKE ?", "%John D%").first

nilクエリの結果がない場合は注意してください。

于 2013-11-09T22:34:02.740 に答える