我有与之关联的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)
但这不起作用。有什么办法吗?
更新:
看起来,rails 以不同的方式处理另一个方向和一对一的连接。你有两个选择:
1)在关联中定义选择的属性,它总是会选择那些
has_one :user_profile, :select => [:name, :id]
2) 在您的模型中定义一个特定的 find ,您可以在其中添加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