Проблема с helper_methods из рельсов просмотров
У меня очень неприятная проблема.
Я не могу вызвать какой-либо вспомогательный метод из моих представлений в rails. Вот что у меня есть:
ApplicationController.rb
class ApplicationController < ActionController::Base
protect_from_forgery
def current_user
@current_user ||= User.find(session[:user_id]) if session[:user_id]
end
helper_method :current_user
helper_method :all
end
/app/views/welcome/_navi_bar.haml:
%ul.nav.nav-pills.pull-right
%li.pull-right
- if current_user
%a.btn-small{"data-toggle" => "modal", :href => log_out_path, :role => "button"}
%i.icon-user.icon-white
%strong
Log Out
- else
%a.btn-small{"data-toggle" => "modal", :href => "#LoginBox", :role => "button"}
%i.icon-user.icon-white
%strong
Login
Вот что я получаю как ошибку:
undefined local variable or method `current_user' for #<#<Class:0x007ff0a0544668>:0x007ff0a05414b8>
Я действительно не понимаю, в чем проблема. Пожалуйста помоги!
1 ответ
Решение
Вы написали свой код в контроллере приложения вместо помощника приложения. Вот почему ваш метод не вызывается
если вы хотите проверить, вошел ли текущий пользователь в систему или нет, вы можете просто использовать его перед фильтрованием в контроллере приложения и вызвать метод
всякий раз, когда вам не нужно проверять метод, добавьте пропуск до фильтра в этом месте