繁体   English   中英

单独的rails辅助方法

[英]Separate rails helper methods

我有几个带有相关辅助模块的控制器。 我得到了一些辅助方法,它们在不同模块中的行为应该相似,这意味着:

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 它只是为了“逻辑分离”吗?

我的意思是,当然,有很多解决方法。 但这只是我,还是真的觉得没有理由在全球范围内包括所有助手?

如果您在ApplicationController类中调用clear_helpers ,则它们不会在不同的帮助程序类之间共享

clear_helpers()

清除此类中的所有现有帮助程序,仅保留与此类同名的帮助程序。

参考: http//api.rubyonrails.org/classes/AbstractController/Helpers/ClassMethods.html#method-i-clear_helpers

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

因此,仅将特定辅助资源用于特定方法。

无论如何,您可以共享的方法(帮助程序)转到ApplicationHelper文件。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM