我有user
模型has_one
与user_profile
我想从user_profile而不是user_profile
中选择名称字段。*
我试过了,
user = User.first
user.user_profile.select(:name)
但这不起作用。无论如何?
答案 0 :(得分:1)
<强>更新:强>
看起来,rails会以不同方式处理另一个方向和一对一连接。您有两种选择:
1)在关联中定义所选属性,它将始终选择那些
has_one :user_profile, :select => [:name, :id]
2)在模型中定义特定的查找,您可以在其中添加select
,如下所示:
def my_profile
UserProfile.find(self.user_profile_id)
end
....
my_profile.select(:name)
<强> ORIGINAL:强>
如果has_many
方向,则有效:
我在我的代码中尝试过您的方法,例如:
= User.find("admin").article.select(:title).to_sql
它返回正确的sql:
SELECT title
FROM "articles"
WHERE "articles"."user_id" = 1364