堤です。

いまい様、ありがとうございます。
とても勉強になります。

> ・link_to のメソッドの仕様を調べる方法を教えてください

actionpack/lib/action_view/helpers/url_helper.rb ということですが、
ここにたどり着く過程をできれば、教えていただけないでしょうか?

例えば、XXXのメソッドの仕様を知りたい場合は、どのように調べれば
いいのか、見当がつきません。 ^^;;

かなり初歩的な質問で、すみません。
# C言語だと関数リファレンスマニュアルのインデックスを見れば、
# 調べたい関数の仕様などがわかるのですが・・・


06/06/02 に Nobuhiro IMAI < nov@yo.rim.or.jp> さんは書きました:
いまいです。

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@yo.rim.or.jp>
Key fingerprint = F39E D552 545D 7C64 D690  F644 5A15 746C BD8E 7106

--
ML: rails@ruby.ml.fdiary.net
使い方: http://QuickML.com/



--
-----
Hiroyuki Tsutsumi