マイビュー私のコードはViewをスキップしてコントローラに直接入ります。レール
<h1>Return a Book</h1>
<%= form_tag("/orders/returnB", method: "get") do %>
<div class="form-group">
<%= label_tag :ID, "ID" %>
<%= text_field_tag :ID, nil, class: "form-control" %>
</div>
<%= submit_tag "Submit", class: "btn btn-default" %>
<% end %>
私のコントローラ
def returnB
getid = params[:ID]
@order = Order.find(getid)
@order.destroy
respond_to do |format|
format.html { redirect_to orders_url, notice: 'Order was destroyed.' }
format.json { head :no_content }
end
end
そのだけのコントローラに直接行くと、それはエラーを与えるので、私のコントローラがIDを取得できませんでしたようにルビー。だから私は、私のルートでこれをやっている:
シンプルなレールでget 'orders/return' => 'orders#returnB'
あなたはそれが「コントローラに直接行く」は何を意味するのですか?すべてがコントローラに最初に行きます。あなたはどんなURLを打っていますか?ルーティングはどのように見えますか?私はまた、通常のパラメータ命名規則を守ることを強く考えています。そして、適切にインデントする。 –
これは、コントローラの 'returnB'メソッドに行くためにルーティングしたからです。 Railsは常に最初にコントローラに当たるでしょう。あなたは注文を破棄するためにgetリクエストを使うべきではありません。達成しようとしている機能を説明できますか?ビューを表示したい場合、ユーザーはフォームを記入し、提出するとOrderは破棄されますか? –
あなたが言及する方法で::取得し、いくつかの破壊操作を行っているコントローラ –