rails:1222
From: Nobuhiro IMAI <nov@y...>
Date: Fri, 02 Jun 2006 18:08:41 +0900 (JST)
Subject: [rails:1222] Re: 破棄、destroyできない
いまいです。 From: "Hiroyuki Tsutsumi" <h.tsutsumi_at_gmail.com> Date: Fri, 2 Jun 2006 16:59:20 +0900 > 本だと > <%= link_to '破棄', { :action => 'destroy', :id => product }, > :confirm => "本当に破棄しますか?" %> > となっており、ブラウザで「破棄」を選択しても、削除されませんでした。 > > で、scaffoldで生成されたlist.rhtmlをみると > <td><%= link_to 'Destroy', { :action => 'destroy', :id => product }, > :confirm => 'Are you sure?', :post => true %></td> > > となっており、下記のように「:post => true」を追加することで、動くようになりました。 > > <%= link_to '破棄', { :action => 'destroy', :id => product }, > :confirm => "本当に破棄しますか?", :post => true %> > > そこで、質問ですが、 > ・本のコードで動かないのはバージョンの違いによるものなのでしょうか? バージョンの違い、だと思います。*_controller.rb の上の方に、 # GETs should be safe (see http://www.w3.org/2001/tag/doc/whenToUseGet.html) verify :method => :post, :only => [ :destroy, :create, :update ], :redirect_to => { :action => :list } みたいなコードがありませんか?:destroy, :create, :update は POST の場 合のみ処理されるようになっています。それ以外のメソッドでアクセスする と、:redirect_to => { :action => :list } されます。 > ・「:post => true」 で動くようになったのは、どうしてでしょうか? このオプションにより、リンクの外側に form を追加して、(無理矢理 ;) POST で送信するようになるからです。 > ・link_to のメソッドの仕様を調べる方法を教えてください actionpack/lib/action_view/helpers/url_helper.rb を読む、でしょうか。 上の挙動も、post_javascript_function メソッドを見ればイメージが湧くと 思います。 -- Nobuhiro IMAI <nov@y...> Key fingerprint = F39E D552 545D 7C64 D690 F644 5A15 746C BD8E 7106 -- ML: rails@r... 使い方: http://QuickML.com/
@ 1221 2006-06-02 09:59 [h.tsutsumi@g... ] 破棄、destroyできない -> 1222 2006-06-02 11:08 ┗[nov@y... ] @ 1226 2006-06-05 03:37 ┗[h.tsutsumi@g... ] 1227 2006-06-05 04:08 ┗[suzk@o... ] 1228 2006-06-05 04:14 ┣[kazuhiko@f... ] @ 1229 2006-06-05 07:18 ┗[h.tsutsumi@g... ]