2011-04-22 119 views
2

如何從Rails 3中的ID獲取用戶名? 在我看來,我打電話給<%= blog.user_id%>這個ID,但是如何得到這個名字呢?Rails 3通過ID獲取用戶名

控制器是默認腳手架。

映入眼簾,

馬克

回答

3

確保您在Blog模型中定義的關聯。

belongs_to :user 

,然後在看你可以使用<%= blog.user.name %>

+1

我已經做了,但我得到一個錯誤: 未定義的方法'名稱」 「#<用戶:0x00000102b7a630>」:用戶 該名稱保存在用戶名中。當我將其更改爲用戶名時,錯誤爲: 未定義的方法'用戶名'爲零:NilClass – Maaaark 2011-04-22 13:21:30

+0

在這種情況下,我還懷疑您有一個沒有關聯用戶的博客實例。爲了避免這個錯誤,你可以使用:'<%= blog.user.try(:username)%>'。 – 2011-04-22 14:40:28

+0

偉大的工作對我來說!我忘了刪除沒有用戶標識的舊博客文章。刪除它們後,您的第一個解決方案也可以運行謝謝! – Maaaark 2011-04-22 15:36:46

1

您應該使用<%= blog.user.name %>和您的博客模型定義

belongs_to :user 

。您應該在視圖級別上使用..._id

2

通常你想避免像post.user.name點的長鏈。嘗試:

class Post < ActiveRecord::Base 
    belongs_to :user 
    delegate :name, :to => :user, :prefix => true 
end 

然後在你的觀點,你可以調用

@post.user_name 

,以獲得用戶名。我想我會把它扔到那裏,因爲它的好習慣我也試圖包含在我的代碼中。

0

使用嘗試<%= blog.user.try(:名稱)%>