Rails:在带有提交按钮的编辑表单中进行就地编辑

Rails:In-place editing in edit form with submit button

本文关键字:编辑 表单 按钮 提交 Rails      更新时间:2023-09-26

我想创建我的编辑表单,这样它将显示当前用户信息简单地作为文本而不是文本字段,当用户单击文本时,它将变成文本字段,用户可以编辑他的信息。只有当用户单击提交按钮时,更改才会反映在数据库中。简单地说,它不是完全合适的编辑,也不完全像默认的编辑形式,它是两种功能行为的混合。

我的表单看起来像这样。它不是完整的表单,这些是表单的一些字段。

<%=  form_for @contact, :html => { :multipart => true, :class => "contact_form"} do |f| %>
  <% if @contact.errors.any? %>
    <div id="error_explanation">
      <h2><%= pluralize(@contact.errors.count, "error") %> prohibited this contact from being saved:</h2>
      <ul>
      <% @contact.errors.full_messages.each do |msg| %>
        <li><%= msg %></li>
      <% end %>
      </ul>
    </div>
  <% end %>
     <div class="field">
        <%= f.label :f_name, "First Name" %><br/>
        <%= f.text_field :f_name %>
     </div>
       <div class ="field">
         <%= f.label :experience, "Total years of experience "%><br/>
         <%= f.select :experience, (0...30),{},{:class => 'select'} %>
       </div>

       <div class="field">
         <%= f.label :l_name, "Last Name" %><br/>
         <%= f.text_field :l_name %>
       </div>

       <div class = "field">
         <%= f.label :primary_practice_area, "Primary practice area"  %><br/>
         <%=  f.select :primary_practice_area , MetaPracticeArea.all.collect {|p| [ p.practice_area, p.id ] }    %>
       </div>
       <div class = "field">
         <%= f.label :phone, "Phone"  %><br/>
         <%= f.text_field :phone %>
       </div>
       <div class="actions">
         <%= f.submit :class => "submit_btn" %>
       </div>
<% end %>

您可以尝试REST_in_place gem: https://github.com/janv/rest_in_place

查看下面的链接in_place_editing:

http://railscasts.com/episodes/302-in-place-editing?view=asciicast