2011-10-10 48 views
0

標題可能不是很合適的寶石,所以道歉提前。只顯示用戶的用戶名與在軌道上

我建立一個Rails應用程序(沒有真正經歷過我會說),我使用的Amistad寶石,以增加friendhsips。它有一些很酷的功能,如顯示所有朋友。不幸的是,我無法按我的意願完成工作。

我試圖表現出與待處理請求與當前用戶的所有用戶:

Pending by: <%= current_user.pending_invited_by %> 

但我得到的結果是

Pending by: [#<User avatar_url: nil, id: 16, username: "zxczxc", 
email: "[email protected]", created_at: "2011-10-01 16:50:24", 
updated_at: "2011-10-05 00:48:24", 
encrypted_password: "a80104b33a0183e096f2ec82b3b9a8c4240fe61828ef5030e52...", 
salt: nil, 
avatar_file_name: nil, avatar_content_type: nil, 
avatar_file_size: nil, avatar_updated_at: nil>] 

有沒有辦法得到的只有用戶的用戶名,而不是整個散列?

回答

3

看起來更像是一個對象數組(不熟悉您使用的寶石)。

請問像這樣的工作:

<% current_user.pending_invited_by.each do |user| %> 
    <%= user.username %> 
<% end %> 
+0

是的,它工作完美!非常感謝 :) – tzoukos

1

只要做到:

<% current_user.pending_invited.each do |u| %> 
    <%= u.username %> 
    <% end %> 
+0

然後我得到一個錯誤信息說了#<的ActiveRecord ::關聯:0x0000000481a840> '未定義的方法 '用戶名'' – tzoukos

+0

編輯。這是一個數組,所以你必須遍歷它。 –

+0

非常感謝您的幫助:) – tzoukos

1

從勇者無懼的文檔,它看起來像評估pending_invited_by回報用戶的數組。所以你實際上需要迭代這些來獲得每個人的名字。

Pending: <%= current_user.pending_invited_by.map{|user| user.username }.join(", ") %> 
+0

您現在正在調用字符串用戶名的加入。 ;)'current_user.pending_invited_by.map(:用戶名).to_sentence' – coreyward

+0

是啊,我固定它 –

+0

感謝您的幫助:) – tzoukos