-4

私が本モデル book.rb を持っているとしましょう

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

(ここではモンゴイドを使用していますが、この質問ではデータの種類は関係ないと思います。)

bookモデルには独自のコントローラー、ビューなどがあります。

ここで、form_tag を使用してページを作成したいと思います (これが適切な方法でない場合はお知らせください)。本の 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 %>

特定のドキュメントを削除する方法は知っていますが、フォームに入力された値を渡す方法と、ドキュメントを削除するロジックを配置する場所がわかりません。

ここに画像の説明を入力

4

1 に答える 1

3

まず最初に。モデルのbook_idを保存する必要があるのはなぜですか? BookMongoid はすでに_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本のインスタンスはどこにありますか。

于 2013-08-12T07:00:07.557 に答える