У меня странная проблема.
У меня есть две модели: пользователи и роли, между которыми существует множество отношений.
Я хочу отфильтровать роли с именем «Администратор» в коллекции ролей пользователя.
В модели этот код
puts self.roles.to_s
Печать на экран:
[Идентификатор роли: 1, имя: «Администратор», create_at: «2012-01-22 21:55:45», updated_at: «2012-01-22 21:55:45»]
Но этот код
puts self.roles.find_by_name('Administrator').to_s
ничего не печатает. И этот:
puts self.roles.find_by_name('Administrator').nil?
печатает правда!
Почему мой метод find_by_name не работает?
Я попробовал это в консоли, и это работает хорошо.
Мой фрагмент кода следующий:
puts self.roles.to_s
puts self.roles.find_by_name('Administrator').to_s
puts self.roles.find_by_name('Administrator').nil?
И вывод следующий:
[Role id: 1, name: "Administrator", created_at: "2012-01-22 21:55:45", updated_at: "2012-01-22 21:55:45"]
<none>
true
Что я делаю не так ?? Это должно быть что-то глупое.
Этот код находится в методе validate, поэтому он выполняется перед сохранением пользователя.