Он говорит, что вызывайте функцию, используя само определение класса контроллера, а не экземпляр класса контроллера. В коде self == ApplicationController
он сравнивает self
со ссылкой на определение класса ApplicationController
, а не с конкретным экземпляром (или объектом) ApplicationController
.
В этом случае пост фактически говорит о вызове функции debugger
в методе контроллера, а не просто где-то в определении контроллера.
Как упоминается в посте, вы должны звонить user_signed_in? в контексте экземпляра , а не определения. Поэтому поместите это в метод, который будет использоваться для фильтра перед или что-то в этом роде. Например:
class ApplicationController < ActionController::Base
protect_from_forgery
def find_user_name
if user_signed_in?
return user.user_name
end
end
end