在rails上仅显示带有ruby的用户的用户名

时间:2011-10-10 23:14:52

标签: ruby-on-rails ruby gem

标题可能不太合适,所以请提前道歉。

我正在构建一个rails应用程序(我真的没有经验)我使用Amistad gem来添加friendhsips。它有一些很酷的功能,比如向所有朋友展示。不幸的是,我无法按照自己的意愿工作。

我正在尝试向所有用户显示当前用户的待处理请求:

Pending by: <%= current_user.pending_invited_by %>

但我得到的结果是

Pending by: [#<User avatar_url: nil, id: 16, username: "zxczxc", 
email: "zxczxc@zxczxc.zxc", 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 个答案:

答案 0 :(得分:3)

看起来更像是一个对象数组(不熟悉你正在使用的宝石)。

这样的事情是否有效:

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

答案 1 :(得分:1)

只是做:

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

答案 2 :(得分:1)

从Amistad文档看,评估pending_invited_by似乎会返回一组用户。所以你实际上需要迭代这些以获得每个的名字。

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