假设我有书模型,book.rb
class Book
include Mongoid::Document
field :book_id, type: String
field :title, type: String
end
(这里我使用的是mongoid,但我认为对于这个问题,无论什么类型的数据都无关紧要。)
book
模型有自己的控制器,视图等。
现在,我想用form_tag创建一个页面(让我知道这是不是一个正确的方法),通过输入book的id并单击enter我将能够从数据库中删除此给定id的记录。
remove.html.erb:
<%= form_tag books_path, :method => 'get' do %>
<p>book_id:
<%= text_field_tag :book_id, params[:book_id] %>
<%= submit_tag "Remove", :name => nil, :confirm => "Are you sure?" %>
</p>
<% end %>
我知道如何删除给定文档,但无法弄清楚如何传递表单中输入的值以及将删除文档的逻辑放在何处。
答案 0 :(得分:3)
首先要做的事情。为什么需要为book_id
模型存储Book
?为此,Mongoid已经提供了_id
字段。
销毁资源的常用方法是通过发出DELETE HTTP请求来命中控制器中的destroy动作。
class BooksController
def destroy
Book.find(params[:id]).destroy
redirect_to :back
end
end
然后只需使用以下链接:
link_to "Delete", book_path(@book), method: :delete
@book
是您的图书实例。