2012-07-23 83 views
0

我有user模型,has_oneuser_profileHAS_ONE协会选择特定领域

协会,我想从user_profile而不是user_profile选择名称字段。*

我都试过了,

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

但是这不起作用。

+0

我使用Rails 3.2 .5 – shajin 2012-07-23 12:16:44

回答

1

更新:

看来,该轨道处理另一个方向和一个一对一的连接方式不同。你有两个选择:

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 
+0

在你的情况下,用户与我猜测的文章有has_many关系。在mycase中,我有user_profile has_one。 – shajin 2012-07-23 12:15:34

+0

是的,你是对的。查看更新。 – Matzi 2012-07-23 13:00:47