0

オブジェクトを破棄するボタンを作成する必要があります。破壊する代わりに、フィールドを表示します

inex.html.erb

<%= link_to image_tag("/images/glossy_green_button.png"), device , { :html => { :method =>  :delete}, :controller => :devices, :action => 'destroy',:id => device.id, :onclick => 'return confirm(\'Are you sure?\');' }, :method => :turnon %>

devices_controller.rb

def destroy
 @device = Device.find(params[:id])
 @device.destroy

  respond_to do |format|
   format.html { render action: "destroy" }
   format.json { head :no_content }
  end
 end

ルート.rb

device GET    /devices/:id(.:format)      devices#show
       PUT    /devices/:id(.:format)      devices#update
       DELETE /devices/:id(.:format)      devices#destroy

私が間違っていたアイデアに感謝します。ありがとうございます

更新しました:

<%= button_to "Delete", device ,  :method => :delete %>

これはうまくいきます

4

2 に答える 2

3

Rails のどのバージョンを使用していますか? link_toメソッドの呼び出しが非常に複雑なのはなぜですか? 単純に書き直すことができます。次の方法を試してください。

<%= link_to image_tag("/images/glossy_green_button.png"), device , :method => :delete,  :confirm => "Are you sure?"
于 2012-10-30T04:04:47.127 に答える
0

破壊的なアクションは、フォームの送信として実行する必要があります - http://www.w3.org/2001/tag/doc/whenToUseGet.html#checklist

代わりに button_to (:delete の :method を渡す) を使用し、ボタンのスタイルを適切に設定します。

またはこれを試してください<%= button_to "delete", your_object, :method=>:delete, :class=>:destroy %>

于 2012-10-30T05:16:14.173 に答える