1

Rails 无法识别我的 .js.erb 文件,只是忽略了其中的任何内容。

advanced_search.html.erb中的相关片段

<%= render "advanced_search_orders_form" %>

我有另一个文件 _advanced_search_orders_form.html.erb,它显示正确,但有一个小问题。

_advanced_search_orders_form.html.erb中的相关片段

<form id="advancedSearchOrder" name="advancedSearchForm" value="advancedSearch" action="" class=" search line" method="GET" onsubmit="return validateAdvancedSearchForm()" >

这个 validateAdvancedSearchForm() 是在_advanced_search_orders_form.js.erb中定义的, 但是 Rails 的行为就好像这个函数没有定义一样。此外,即使我只是在 _advanced_search_orders_form.js.erb 中写了一个警报(“检查”),它也不会呈现。甚至编辑器(RubyMine)也说它找不到这个函数 validateAdvancedSearchForm 的定义。

我根本没有使用 .js.erb 文件,所以我确定我在那里做错了什么。我是否错误地定义了文件名,还是必须包含它等?真的很感谢这里的一点帮助。

4

2 回答 2

0

validateAdvancedSearchForm() 必须放在 assets/javascrips 文件夹中的 .js 文件(如果使用咖啡脚本,则为 .js.coffee)中,然后您可以从页面中使用它

于 2013-03-21T09:21:33.207 回答
0

默认情况下您.js.erb不会渲染。当你写

<%= render "advanced_search_orders_form" %>

这将呈现“_advanced_search_orders_form.html.erb”,因为这是您的默认模板格式。

试试这个方法:

<%= render :file => "advanced_search_orders_form.js.erb" %>

确保该文件中的脚本在<script></script>标记中

于 2013-03-21T09:26:59.180 回答