我有一个带有自定义label_tag
方法的 LabelTagHelper,但我只需要在我的新操作、创建、编辑和更新操作中使用此方法。
有没有办法仅为特定操作定义此帮助程序?像helper :label_tag, :only => [:new, :create, :update, :destroy]
?或者before_filter打电话给self.class.helper :label_tag
是安全的?
rails 助手应该只是格式化程序。将其视为装饰表示层(视图)的函数
因此,将助手作为 :before_filter 没有任何意义。作为控制器,操作通常涉及一些服务器端处理。
因此,请随时致电您的助手。因此,无需仅为特定操作添加帮助程序。 正如我前面提到的,帮助程序和控制器/模型操作应该是互斥的
顺便说一句,你能详细说明你的要求,为什么你想限制你的助手
呵呵
萨梅拉
试试这个,
有这样的帮助程序方法(在我的情况下,我使用了一个名为"项目助手"的帮助程序)
module ProjectsHelper
def label_tag *params
if controller.action_name == "index"
#user custom implementation
else
super
end
end
end
这是工作...希望这是你需要的,
干杯
呵呵
萨梅拉
注意:很抱歉没有更新现有答案。由于这是一种全新的方法,因此将其作为单独的答案