[英]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'
,仅使用Photos
和Application
助手?
助手的概念对我来说并不是很清楚。 如果所有助手已经混入,为什么不只有一个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.