使用JS模板作为Rails部分

时间:2014-05-25 15:58:21

标签: javascript ruby-on-rails ruby ruby-on-rails-4 ejs

我有一个rails 4应用程序,我有一些Javascript生成一个.jst.ejs模板,看起来像:

<!--name.jst.ejs which is in assets/javascripts/templates-->
<input type="text" name="store[name]" placeholder="Store Name" />

然后我有一个rails部分(在我的views目录中称为_name.html.erb),如下所示:

<input type='text' name="store[name]" value="<%= @store.name%>" />

我要做的是保持这个DRY,只需要使用一个ejs文件(而不是基本上有一个重复的.ejs和.erb文件)。

有办法:

  1. 将ejs文件作为rails部分调用:例如:<%= render "name" %>(呈现name.jst.ejs文件?
  2. 另外,因为这两个文件有些不同,有没有办法区分代码,如果它被渲染为ejs vs erb?例如,像:
  3. <input type='text' name="store[name]" <% if erb %> value="<%= @store.name %>" <% else %> placeholder="Store Name" <% end %> />

1 个答案:

答案 0 :(得分:1)

  1. 尝试类似:

    <%= render "name.jst.ejs", :formats => [:erb], isErb: true %>

  2. 然后在部分中,检查isErb是否存在