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文件,所以我确定我在那里做错了。我是否错误地定义了文件名,或者我是否必须包含它?真的很感激这里的一点帮助。
答案 0 :(得分:0)
validateAdvancedSearchForm()必须放在您的assets / javascrips文件夹中的.js文件(.js.coffee,如果您使用咖啡脚本),然后您可以在您的页面中使用它
答案 1 :(得分:0)
默认情况下,您的.js.erb
不会呈现。当你写
<%= render "advanced_search_orders_form" %>
这将呈现'_advanced_search_orders_form.html.erb',因为这是您的默认模板格式。
尝试这种方式:
<%= render :file => "advanced_search_orders_form.js.erb" %>
确保该文件中的脚本位于<script></script>
标记