这只是一个关于Rails架构的疑问,我有Model Notification,但是没有NotificationsController,我需要在视图中使用一些通知方法,这就是为什么我在考虑创建NotificationsHelper文件的原因。我现在也许可以将这些方法放在ApplicationHelper上,但是此文件已经很长了。
因此可以在没有相应控制器的情况下获得帮助文件?还是不?
答案 0 :(得分:1)
仅需注意几件事。首先,正如他们在评论中所说,是的,您可以这样做,只需在helpers
目录中定义它即可。
要在视图中使用该新文件中定义的方法,只需像使用其他任何辅助方法一样调用它们即可。
要在控制器中使用它们,有两个选项。
使用方法helpers
(至少在Rails 5中)。也就是说,在控制器内部,您可以使用在任何此类助手中定义的任何方法
class SomeController < ApplicationController
def some_action
helpers.some_method_from_any_helper
end
end
第二种方法的优点是,您不必在控制器中公开不需要的方法。