单击时使用jquery渲染rails部分

时间:2014-12-10 19:48:38

标签: jquery ruby-on-rails

我有一个允许用户构建简历的应用程序。目前我有一个表单(简历),为我的其他每个模型(教育,经验等)加载嵌套表单。默认情况下,这些部分是可见的我希望用户能够点击他们想要添加的部分而不是默认显示表单(例如:他们会点击"教育"从列表中添加教育,它会附加教育form block。)使用jquery。在我的形式中,制作了一个带有一个" form-b​​lock-section"并且我将每个单独的表单块移动到它自己的部分中。

# _form.html.erb

<%= form_for(@resume) do |f| %>
  <% if @resume.errors.any? %>
   <div id="error_explanation">
    <h2><%= pluralize(@resume.errors.count, "error") %> prohibited this resume from being saved:</h2>

    <ul>
      <% @resume.errors.full_messages.each do |message| %>
        <li><%= message %></li>
      <% end %>
    </ul>
   </div>
  <% end %>

  <div class="field">
    <%= f.text_field :title, class: "form-control", placeholder: "Title" %>
  </div>
  <div class="field">
    <%= f.text_area :summary, class: "form-control", placeholder: "Summary" %>
  </div>
  <div class="field">
    <%= f.text_field :job_title, class: "form-control", placeholder: "Desired Job Title" %>
  </div>

  <div class="form-block-section">

     *****
     // THIS IS WHERE I WANT THE FORM BLOCKS TO BE APPENDED WHEN THE USER CLICKS THE LINK

  </div>

  <div class="actions">
    <%= f.submit %>
  </div>
<% end %>

就像我说的,我为每个简历部分创建了一个部分,用户可以选择。这是一个例子。

# _education_block.html.erb

<div id="educations" class="field build-block">
   <h3>Education</h3>
   <%= f.fields_for :educations do |education| %>
   <% end %>
   <div class="links">
     <%= link_to_add_association 'add education', f, :educations %>
   </div>
</div>

在我的resumes.js

# resumes.js

$('#add-education-block').on('click', function(){
    $('.form-block-section').append("<%= escape_javascript(\"#{render 'education_block'}\").html_safe %>");
});

现在问题:

它在我的网页上呈现为一个字符串:&lt;%= escape_javascript(&#34;#{render&#39; education_block&#39;}&#34;)。html_safe%&gt; < / p>

1 个答案:

答案 0 :(得分:0)

您需要将.erb添加到resume.js - resume.js.erb。

此外,您可能希望使用嵌套表单 - https://github.com/ryanb/nested_form