我有一个简单的待办事项列表应用程序,在主页面中我有一个按钮,它会调出一个新的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中的表单中,现在如果表单中出现错误并单击“提交”,则会在同一视图中显示该表单,但不会显示错误!