独立的rails助手方法



我有一对控制器与相关的助手模块。我得到了一些助手方法,它们应该在不同的模块中表现相似,这意味着:

module UserHelper
  ..
  def destroy(user)
    link_to t(:destroy_user), user ... 
  end
end
module PhotosHelper
  ..
  def destroy(photo)
    link_to t(:destroy_photo), photo ... 
  end
end

我不知道(意识到)所有这些帮助模块都是默认包含的,(这是ok的,我想,)不管你从哪个视图调用帮助方法。

从当前控制器/视图中分离其余帮助器的最佳方法是什么,以便当controller_name == 'photos'时,仅使用PhotosApplication帮助器?

帮手的概念对我来说不是很清楚。如果所有帮助者都已经混合在一起了,为什么不只使用一个ApplicationController呢?只是为了"逻辑分离"吗?

我的意思是,当然,有一些变通的办法。但是,是只有我这样认为,还是真的觉得没有理由在全局范围内包含所有的帮助程序?

如果你在ApplicationController类中调用clear_helpers,它们将不会在不同的helper类中共享

clear_helpers ()

清除该类中所有现有的helper,只保留与该类同名的helper。

裁判:http://api.rubyonrails.org/classes/AbstractController/Helpers/ClassMethods.html method-i-clear_helpers

您可以将通用方法放在ApplicationHelper上,并将资源作为参数传递。

因此,只能为特定的方法使用特定的帮助器资源。

方法(帮助),你可以共享,到ApplicationHelper文件

相关内容

  • 没有找到相关文章

最新更新