我有一个Rail 4应用程序,它使用ajaxify_rails Gem。所以只加载了我的内容,但没有加载整个页面。现在我定义了一个助手方法,我想在每个视图中调用它作为第一条语句。我目前的方法是在每个视图中都显式地执行此操作,但这是大量重复的代码。所以我有很多观点都是从开始的
= rails_helper_method
...
有没有一种方法可以在每一个视图中都隐含地做到这一点,或者我只需要一遍又一遍地调用它?
这就是layouts
的作用只需在布局中调用您的helper方法,因为您的视图将使用该布局,所以您的helper方法也将被调用。在您的布局文件中,您可以执行:
%body
= rails_helper_method
= yield
更新:
如果查看ajaxify_rails repo
,可以在application_controller中调用其ajaxify_extra_content方法,然后将其绑定到ajaxify事件。你可以这样做:
def ajaxify_extra_content
... your extra html ...
end
然后像这样绑定:
$(document).on 'ajaxify:content_inserted', ->
$('#id_of_some_container_in_view').html $('#ajaxify_content #id_of_some_container_in_view').html()
你也可以这样直接打电话给你的助手:
def ajaxify_extra_content
view_context.your_helper
end
PS我还没有测试过,但这应该对你有效