我希望能够使用一些 rails 的视图和表单助手,例如<%= image_tag .. %>
或<%= select_tag .. %>
在我的 javascript 模板中。我读了这个线程,该线程建议将 erb 预渲染为某个 javascript 变量中的字符串,然后从模板中调用它(它必须在调用 js 模板之前可用)。所以我可以做这样的事情:
view_helpers.js.erb
<script type="text/javascript">
var ViewHelpers = {
CountrySelect: "<%= select_tag "person[country_id]", options_from_collection_for_select(Country.all, "name", "id"), :prompt => '-Country-' %>"
};
</script>
然后从我的生态模板中调用它(稍后渲染):
edit_person.jst.eco
...
<p>
<label for="person_country_id">Country</label>
<%= ViewHelpers.CountrySelect %>
</p>
...
但是,我似乎无法将其加载为视图的一部分或使用资产管道:
资产管道:application.js
(保存在 app/assets/javascripts/views/people/view_helpers.js.erb 中)
//= require ./views/people/view_helpers
或者
ERB 模板:views/people/index.html.erb
(保存在 app/views/people/view_helpers.js.erb 中)
<%= render :template => 'people/view_helpers' %>
我是完全错误地处理这个问题还是我错过了什么?谢谢。