【Twitterやってます】 koress project | しがく(cigarcook) | おかじ(okaji)

2009年1月27日 23:35

携帯サイトを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にこだわり過ぎないよう、柔軟に解決していきたいものです。


トラックバック