rails:311
From: ABE Masahiro <abe@c...>
Date: Wed, 03 Aug 2005 10:43:46 +0900
Subject: [rails:311] パラメタによるアクション名の指定
あべです。 0.13から(0.13.1からかもしれませんが) アクション名がGET/POSTパラメタでは指定できなくなっています。 http://example.com/user/edit/1 http://example.com/user/edit?id=1 http://example.com/user/?action=edit&id=1 以前はどれも User::editが呼ばれましたが、今は3番目は User::indexが呼ばれるうえにparams[:action] も"index" になっています。 これで何が困るかというと、 <form action="/user" method="POST"> <input type="hidden" name="id" value="1"> : <input type="submit" name="action" value="edit"> <input type="submit" name="action" value="delete"> <input type="submit" name="action" value="update"> </form> のように、ひとつのフォームに複数のボタンを置いて共通の パラメタで異なるアクションをダイレクトに呼ぶことができなく なってしまったことです。 # そのほかにもアクションを隠しパラメタにもって # 確認画面を共通にするとかできなくなりました また、以前は before_filterで設定したコード内で @params["action"] に代入すると飛び先が変更できましたが いまは変わりません(ただし@action_nameに代入するとできる)。 そんなわけで[rails:207]〜[rails:209]で出たコードは 今は動きません。 パラメタ名を"action"とは別にすればg0r0uさんの方法は有効です。 -- ABE Masahiro <abe@c...> -- ML: rails@r... 使い方: http://QuickML.com/ Web Site: http://wiki.fdiary.net/rails/ ML Archives: http://www.fdiary.net/ml/rails/