Rails: используйте helper_method из одного контроллера в другой - PullRequest
2 голосов
/ 13 ноября 2010

У меня есть следующий контроллер:

class FirstController < ApplicationController
  helper_method :contoller_method

private 
  def contoller_method
    "text"
  end
end

Как я могу использовать contoller_method в виде другого контроллера? Есть ли лучшая практика?

Ответы [ 2 ]

7 голосов
/ 13 ноября 2010

Поместите метод в application_controller.rb.Тогда он будет доступен всем вашим контроллерам.

Если вы хотите разделить его только между двумя классами, вы можете сделать что-то подобноеСоздайте новый контроллер с именем вспомогательный контроллер и наследуйте первый / второй контроллер от него.

class FirstController < HelperController

end

class SecondController < HelperController

end

class HelperController < ApplicationController
  helper_method :contoller_method

  private 
    def contoller_method
      "text"
    end
end
3 голосов
/ 25 февраля 2014

Может быть, это?

class FirstController
  include SomeConcern
end

class SecondController
  include SomeConcern
end

module SomeConcern
  def self.included(base)
    base.helper_method :controller_method
  end

  private 

  def controller_method
    "text"
  end
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...