Проблема с 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 ответ

Решение

Вы написали свой код в контроллере приложения вместо помощника приложения. Вот почему ваш метод не вызывается

если вы хотите проверить, вошел ли текущий пользователь в систему или нет, вы можете просто использовать его перед фильтрованием в контроллере приложения и вызвать метод

всякий раз, когда вам не нужно проверять метод, добавьте пропуск до фильтра в этом месте

Другие вопросы по тегам