@Fahrenhei7

Как добавить свой метод в приложение Rails?

Всем привет. У меня такой вопрос, если у юзера есть атрибут :role, в котором различные значения. Как мне добавить метод, к примеру user.admin?, который возвращает что-то типа self.role == "admin"?
Суть в том, что этот метод должен работать по отношению к тому, к чему ты его вызываешь. Например.
current_user.admin? (true/false)
@user.admin?(где @user назначен в контроллере) (true/false)

Спасибо большое за помощь. Я ценю то, что вы уделили время.
  • Вопрос задан
  • 281 просмотр
Решения вопроса 2
doromones
@doromones
Работаю с php/ruby
# models/User.rb
class User
...
  def admin?
    self.role == 'admin'
  end
...
end
Ответ написан
ibub1ik
@ibub1ik
Ruby/Rails Dev => Elixir
В модели (скорее всего это User) нужно добавить метод экземпляра:
def admin?
  role == 'admin'
end

Указание self не требуется, т.к. Ruby, не найдя локальной переменной с таким именем в теле метода, вызовет метод с таким именем. current_user наверняка так же является инстансом класса User, так что все будет работать и с ним.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы