在每个视图中隐含地调用Rails助手作为第一个参数



我有一个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我还没有测试过,但这应该对你有效