Rails使用唯一ID呈现格式js

时间:2015-11-11 10:11:23

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

<div id="contact_form_<%= i %>"></div>

我在每个循环中都有一个id。我想在每个id上呈现一个表单。

$("#contact_form").html("<%= j(render 'form') %>");

但是,我似乎无法找到一种方法来呈现具有唯一ID的表单。我试过了$("#contact_form<%= i %>"),但javascript没有采用erb标记。知道怎么做吗?

1 个答案:

答案 0 :(得分:2)

如果您在js.erb模板(IE app/views/controller/action.js.erb)中呈现代码,则可以根据需要传递尽可能多的ERB

<% @ids.each do |i| %>
   $("#contact_form_<%=j i %>").html("<%= j(render 'form') %>");
<% end %>

如果您有多个不同ids的表单,为什么不将它们传递给form部分:

#app/views/controller/action.js.erb
<%= render "form", collection: @ids, as: :id %>

#app/views/controller/_form.html.erb
<%= content_tag :div, id: "contact_form_#{id}" do %>
   <%= form_tag [[url]], id: id do %>
      ...
   <% end %>
<% end %>