2012-07-23 117 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