Показывать только имя пользователя с ruby ​​на рельсах - PullRequest
0 голосов
/ 11 октября 2011

Название может быть не очень подходящим, поэтому заранее извиняюсь.

Я создаю приложение rails (не очень опытно, я бы сказал) и я использовал камень Amistad для того, чтобы добавить 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 ]

3 голосов
/ 11 октября 2011

Для меня это больше похоже на массив объектов (не знаком с используемым вами камнем).

Делает что-то вроде этой работы:

<% current_user.pending_invited_by.each do |user| %>
  <%= user.username %>
<% end %>
1 голос
/ 11 октября 2011

Из документов Amistad это выглядит как оценка pending_invited_by возвращает массив пользователей.Таким образом, вам действительно нужно перебрать их, чтобы получить имя для каждого.

Pending: <%= current_user.pending_invited_by.map{|user| user.username }.join(", ") %>
1 голос
/ 11 октября 2011

Просто сделай:

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