Я не могу сделать голову или хвост этого (но я, вероятно, идиот). У меня есть класс ApplicationController
, содержащий следующий метод:Неопределенный метод logged_in? Ruby on Rails
def logged_in?
!current_user.nil?
end
if logged_in?
load_and_authorize_resource :unless => :devise_controller?, :except => :show
end
Это дает мне ошибку:
undefined method `logged_in?' for ApplicationController:Class
Этот метод четко определен, как он возвращается как неопределенные?
Если вы вызываете его на верхнем уровне (что вы делаете сразу после его определения) вы вызываете его на уровне класса, а не на уровне экземпляра. Вы определили метод экземпляра; он недоступен вне экземпляра. –
Итак, у вас есть класс ApplicationController, и у вас есть эти 6 строк кода? Правильно, как вы их разместили? Я имею в виду, «если logged_in?» строка появляется после «конца» «def logged_in?» Метод ?. Если это так, вы делаете это неправильно. «Если logged_in?» код должен использоваться внутри ваших методов, а не снаружи. Вы используете код вне методов, чтобы сделать, возможно, какое-то метапрограммирование, чтобы определить другие методы и т. Д. – fanta
@ 123 У вас все еще есть эта проблема? У меня была аналогичная проблема, которую я решил сегодня –