0

我想在 UJS 中 DRYingly 工作,而不是重复 javascript

我还想根据从控制器获得的变量运行特定的 js 代码

例如,这可能是 ujs 响应中的代码类型

<% if !flash[:error].blank? %>
alert("there is an error! - <%= flash[:error] %>");
<% else %>
alert("nothing to see here, move along now.. <%= flash[:success] %>");
<% end %>

所以我想在几个 ujs 响应中触发这段代码,但我不知道在哪里放置它。帮助文件用于 html..

我在哪里可以放置这样的 js/erb 混合代码,以便它可以重用 - 所以我可以从任何 .js.erb 文件中调用它?

4

1 回答 1

1

您可以使用以下语法从 js.erb 中渲染部分内容:

<%= render :partial => "shared/alerts" %>

只需将上面的代码放入适当目录中的部分。在我上面的示例中,该文件将被称为 _alerts.js.erb 并且您将把部分放在我称为 shared 的目录中(将在您的视图目录中),但您可以选择您认为合适的任何目录。

于 2013-06-06T13:30:19.693 回答