0

私はuserモデルをhas_one持っていますuser_profile

user_profileそして、 .*の代わりに user_profile から名前フィールドを選択したい

私が試してみました、

user = User.first
user.user_profile.select(:name) 

しかし、これは機能していません。

4

1 に答える 1

1

更新しました:

レールは、他の方向と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
于 2012-07-23T11:40:02.290 に答える