2012-07-09 81 views
0

如何在視圖圖層中提供以下方法?公開控制器的類方法來查看輔助方法?

# app/controllers/base_jobs_controller.rb 
class BaseJobsController < ApplicationController 
    def self.filter_name 
    (controller_name.singularize + "_filter").to_sym 
    end 
end 

我想在這樣的視圖助手來使用它:

module ApplicationHelper 
    def filter_link(text, options = {}) 
    # Need access to filter_name in here.... 
    end 
end 

回答

2

相反的helper_method,我寧願包括模塊中這樣的功能。

module BaseJobsHelp 
    def filter_name 
    (controller_name.singularize + "_filter").to_sym 
    end 
end 

然後包括在BaseJobsControllerApplicationHelper模塊。

class BaseJobsController < ApplicationController 
    include BaseJobsHelp 

    # ... 
end 


module ApplicationHelper 
    include BaseJobsHelp 

    def filter_link(text, options = {}) 
    # You can access filter_name without trouble 
    end 
end 

取決於你的模塊的方法的內容,您可能需要使用另一種方法來訪問某些數據(即電流控制器的名字)