我有一个使用 ajaxify_rails Gem 的 Rail 4 应用程序。所以只有我的内容被加载,而不是整个页面。现在我已经定义了一个辅助方法,我想在每个视图中调用它作为第一条语句。我目前的方法是在每个视图中都明确地这样做,但这是很多重复的代码。所以我有很多观点都是从
= rails_helper_method
...
有没有办法在每个视图上都隐含地做到这一点,还是我只需要一遍又一遍地调用它?
我有一个使用 ajaxify_rails Gem 的 Rail 4 应用程序。所以只有我的内容被加载,而不是整个页面。现在我已经定义了一个辅助方法,我想在每个视图中调用它作为第一条语句。我目前的方法是在每个视图中都明确地这样做,但这是很多重复的代码。所以我有很多观点都是从
= rails_helper_method
...
有没有办法在每个视图上都隐含地做到这一点,还是我只需要一遍又一遍地调用它?
这是layouts
为了什么。只需在您的布局中调用您的辅助方法,因为您的视图将使用该布局,因此您的辅助方法也将被调用。在您的布局文件中,您可以执行以下操作:
%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我还没有测试过,但这应该对你有用