1

我有一个使用 ajaxify_rails Gem 的 Rail 4 应用程序。所以只有我的内容被加载,而不是整个页面。现在我已经定义了一个辅助方法,我想在每个视图中调用它作为第一条语句。我目前的方法是在每个视图中都明确地这样做,但这是很多重复的代码。所以我有很多观点都是从

= rails_helper_method
...

有没有办法在每个视图上都隐含地做到这一点,还是我只需要一遍又一遍地调用它?

4

1 回答 1

2

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

于 2014-09-06T19:00:45.853 回答