просматривать названия ролей пользователя через таблицу назначений - PullRequest
0 голосов
/ 18 января 2011

Эй, я надеюсь, что вы можете помочь мне здесь.

Я получил ролевую модель:
has_many :users, :through => :role_assignments<br> has_many :role_assignments

модель назначения роли:
belongs_to :user<br> belongs_to :role

и модель пользователя:
has_many :roles, :through => :role_assignments<br> has_many :role_assignments

Я хочу отобразить роли пользователей в представлении. Я пробовал что-то вроде: user.roles.names, но это не сработало

1 Ответ

2 голосов
/ 18 января 2011

Так как user.roles - это коллекция (массив) ролей, вы не можете вызывать имена напрямую. Теперь я предполагаю, что атрибут, к которому вы хотите получить доступ, является именем, поэтому в этом случае вы можете сделать:

user.roles.map(&:name).join(", ")

, которая соберет все имена из ролей и затем объединит их в строку, разделенную запятыми. Это очень просто и не очень гибко. Если вы вместо этого хотите придать ему стиль, вы можете сделать это так:

<% user.roles.each do |role| %>
  <p>Role: <%= role.name %></p>
<% end %>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...