分离Rails辅助方法

4

我有几个控制器和相关的帮助模块。我有一些帮助方法应该在不同的模块中表现出类似的行为,这意味着:

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

我之前并不知道所有这些助手模块都是默认包含的(我猜这没关系),而且无论从哪个视图调用助手方法都没有影响。

有什么最好的方法可以将其余的助手与我的当前控制器/视图分离,以便在 controller_name == 'photos' 时,只使用 PhotosApplication 助手?

对我来说,助手的概念并不是很清晰。如果已经混合了所有助手,为什么不只有一个单一的 ApplicationController 呢?这只是为了“逻辑分离”吗?

我的意思是,当然,有许多解决方法。但是是我自己的问题,还是真的感觉没有理由全局包含所有助手呢?

2个回答

3

2

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

因此,仅针对特定方法使用特定的辅助资源。

可以共享的方法(辅助程序)放在ApplicationHelper文件中。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接