-4

假设我有书籍模型 book.rb

class Book
  include Mongoid::Document
  field :book_id, type: String
  field :title, type: String
end

(这里我使用的是 mongoid,但我认为对于这个问题,什么类型的数据并不重要。)

book模型有自己的控制器、视图等。

现在,我想创建一个带有 form_tag 的页面(如果这不是正确的方法,请告诉我),通过输入书籍的 id 并单击 enter,我将能够从数据库中删除这个给定 id 的记录。

删除.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 %>

我知道如何删除给定的文档,但不知道如何传递表单中输入的值以及将删除文档的逻辑放在哪里。

在此处输入图像描述

4

1 回答 1

3

第一件事。为什么你需要book_id为你的Book模型存储一个?Mongoid 已经_id为此提供了一个字段。

销毁资源的常用方法是通过发出 DELETE HTTP 请求在控制器中执行销毁操作。

class BooksController
  def destroy
    Book.find(params[:id]).destroy
    redirect_to :back
  end
end

然后只需使用以下链接进行链接:

link_to "Delete", book_path(@book), method: :delete

@book你的书实例在哪里。

于 2013-08-12T07:00:07.557 回答