Как вызвать вспомогательный метод из вида и контроллера в рельсах? - PullRequest
3 голосов
/ 13 мая 2010

Я создал вспомогательный метод для некоторых простых вычислений. Этот вспомогательный метод просто возвращает целое число. Мне нужен помощник как в контроллерах, так и в представлениях.

К сожалению, это хорошо работает в представлениях, но не в контроллерах. Я получаю ошибку undefined local variable or method. Как я могу это исправить?

Спасибо всем

Ответы [ 2 ]

10 голосов
/ 13 мая 2010

Чтобы использовать одинаковые методы как в контроллере, так и в представлениях, добавьте метод you в application_controller.rb и сделайте его вспомогательными методами .

Например

class ApplicationController < ActionController::Base
  helper :all # include all helpers, all the time
  #protect_from_forgery # See ActionController::RequestForgeryProtection for details
  helper_method :current_user 

  def current_user
    session[:user]
  end

end

Теперь вы можете использовать метод current_user в обоих контроллерах и представлениях

4 голосов
/ 13 мая 2010

Я использую следующее решение. Потому что я думаю, что методы помощника должны храниться в соответствующем модуле помощника.

module TestHelper
  def my_helper_method
    #something
  end
end


class SomeController < ApplicationController
  def index
    template.my_helper_method
  end
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...