2009年1月27日 23:35
- | Retweet
-
携帯サイトをrails2.0/2.2で作るときの:delete
さらにメモです。
RESTfulなコードを吐いてくれる最近のrailsですが、携帯サイトには弊害になる場合があります。
scaffoldで作成したときの「削除」リンクは
<%= link_to 'destroy', object, :confirm='Are you sure?', :method=>:delete -%>
のようになっているハズですが、これはJavaScriptバキバキのコードを吐くため、携帯電話ではクリックしてもエラーになります。(そもそも:deleteメソッドに非対応)
というわけで、:getメソッドでdestroyメソッドを呼び出せるようにし、昔ながらのリンク方法で実現してみます。
解決方法
まず、config/route.rbにおいて、destroyメソッドを:getで呼べるようにします。
map.resources objects, :member=>{:destroy=>:get}
次に、任意のviewファイルで、
<%= link_to 'destroy', :controller=>'objects', :action=>'destroy', :id=>object -%>
これでおkです。
あまりRESTfulにこだわり過ぎないよう、柔軟に解決していきたいものです。