私はuser
モデルをhas_one
持っていますuser_profile
user_profile
そして、 .*の代わりに user_profile から名前フィールドを選択したい
私が試してみました、
user = User.first
user.user_profile.select(:name)
しかし、これは機能していません。
私はuser
モデルをhas_one
持っていますuser_profile
user_profile
そして、 .*の代わりに user_profile から名前フィールドを選択したい
私が試してみました、
user = User.first
user.user_profile.select(:name)
しかし、これは機能していません。
更新しました:
レールは、他の方向と1対1の接続を異なる方法で処理しているようです。2つのオプションがあります。
1)関連付けで選択した属性を定義します。これにより、常にそれらが選択されます。
has_one :user_profile, :select => [:name, :id]
2)次のように、モデルに特定の検索結果を定義します。ここに追加できますselect
。
def my_profile
UserProfile.find(self.user_profile_id)
end
....
my_profile.select(:name)
オリジナル:
指示の場合has_many
、それは機能します:
私は私のコードであなたのメソッドを試しました:
= User.find("admin").article.select(:title).to_sql
正しいSQLを返します。
SELECT title
FROM "articles"
WHERE "articles"."user_id" = 1364