Ruby on Rails,如何在同一页面上以相同的形式显示验证错误?

时间:2017-07-11 11:16:43

标签: javascript ruby-on-rails ajax simple-form

我有一个简单的待办事项列表应用程序,在主页面中我有一个按钮,它会调出一个新的simple_form来添加新任务。我正在使用ajax,以便表单出现在同一页面(即主页面)中。

我的问题是,如何在同一页面(即主页面)上以相同的形式显示验证错误而不在另一页面中显示该表格(已经完成)。

我的档案是,

items_controller.rb

def create  
  @item = Item.new(secure_params)
if @item.save
  flash[:notice] = "Form submitted by #{@item.title}"
  if flash[:isUpdate]
     @var = Item.find(flash[:toDestroy]).destroy
  end
redirect_to root_path
else
    respond_to do |format|

        format.html {render action: "_add"}

    end 

end

end

home.html.erb

   <div class="table-responsive">
   <table class="table">
    <thead>
    <tr>
        <th><%= sortable "title"%></th>
        <th><%= sortable "work_time"%></th>
        <th>Creation Date</th>
        <th>Expiration Date </th>
    </tr>
    </thead>
    <tbody>
    <% @items.each do |item|%>
<tr>
    <td><%= link_to simple_format("#{item.title}"), items_show_single_record_path(:id =>item.id), remote: true%></td>
    <td><%= item.work_time%></td>
    <td><%= item.creation_date%></td>
    <td><%= item.expiration_date%></td>
</tr>
<% end %>
    </tbody>
</table>
</div>
<div id="items-modal"></div>

_add.html.erb

<div class ="modal-dialog modal-content modal-body">
<%= simple_form_for @item do |form|%>
<%= form.error_notification %>
<%= form.input :title%>
<%= form.input :creation_date, :readonly => true %>
<%= form.input :expiration_date%>
<%= form.input :work_time %>
<%= form.input :completed %>
<%= form.button :submit, 'Submit', class: 'submit' %>
<% end %>
</div>

add.js.erb

$("#items-modal").html("<%= j render 'add' %>")
$("#items-modal").modal("add")

我在这里看了不同的答案,但没有运气。 此外,我是新手,所以我们非常感谢解释和/或资源。

更新:

我已将remote: true添加到_add.html.erb中的表单中,现在如果表单中出现错误并单击“提交”,则会在同一视图中显示该表单,但不会显示错误!

0 个答案:

没有答案