КАК вызвать метод application_helper в определенном CategoryHelper - PullRequest
1 голос
/ 08 ноября 2010

с целью повторного использования я поместил некоторый метод в applciation_helper, теперь я хочу вызвать этот метод для определенного помощника, такого как CategoryHelper,

мне нужно сделать что-то еще?

Application_helper.rb
def ad_materials(a)
   do sth
end


CategoryHelper.rb
ad_materials("dd")#this method define on application_helper,but it didnt' work

это удобный способ использовать общий метод, поместить их в application_helper или любым другим рекомендованным способом, надеюсь, кто-нибудь может мне помочь, спасибо

я отредактировал вопрос, чтобы прояснить его, надеюсь, кто-топомогите снова

Ответы [ 3 ]

1 голос
/ 08 ноября 2010

Если вы наберете helper :all в вашем application_controller, то любой помощник будет доступен в любом представлении.

Пример:

Приложение / хелперы / application_helper.rb

module ApplicationHelper
  def helper(object)
    object.to_s
  end
end

приложение / контроллеры / application_controller.rb

class ApplicationController < ActionController::Base
  helper :all
end

Приложение / просмотров / other_objects / show.html.erb

<%= helper(other_object) %>

Это то, что вы спрашиваете?

0 голосов
/ 19 июля 2011

Если вы говорите "как вызвать методы ApplicationHelper из CategoryHelper", я столкнулся с этой проблемой.Мой менее элегантный обходной путь был такой:

module ReusableHelpers
  def ad_materials(a)
    do sth
  end
end

module ApplicationHelper
  ...
  include ReusableHelpers

  ...
end

module CategoryHelper
  include ReusableHelpers

  def show_pastries_only    
    ad_materials("cherry")
  end
end
0 голосов
/ 08 ноября 2010

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

def ad_materials("dd")
    do stuff here
end 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...