2013-05-14 2 views
0

У меня есть следующие модели:Rails - как узнать роль пользователя в системе?

class Role < ActiveRecord::Base 
    has_many :assignments 
    has_many :users, :through => :assignments 
end 

class Assignment < ActiveRecord::Base 
    belongs_to :user 
    belongs_to :role 
end 

class User < ActiveRecord::Base 
    has_many :assignments 
    has_many :roles, :through => :assignments 
    ... 
end 

Я пытаюсь выяснить роль пользователя, но когда я пытаюсь

user.assignments.name 

Он не печатает из роли пользователя из таблицы роли (имя столбца).

Как распечатать это?

+0

У меня есть много ролей, как узнать свою роль в системе? – oldergod

ответ

2

Вы должны карта на вашей ассоциации для того, чтобы получить конкретное поле:

user.roles.map(&:name) 
+0

Спасибо за комментарий, когда я попробую это, я получаю просто 'undefined method 'name' для # ' – user984621

+0

Смотрите мое обновленное сообщение, должно быть user.roles.map (&: name) –

+0

Отлично, спасибо вы так много! – user984621

0

Попробуйте это.

user.roles.each {|role| puts role }

Вы не можете вызвать метод name на user.assignments, потому что это массив.