SmallStyle


2011-04-25

_ ActiveResource を使って PUT とかしてみて気になったこと

ここ数日は Rails3 をさわることが多くて,その中で ActiveResource を使って PUT リクエストを送信しようと,まずは API のサンプルを参考にしてリクエストを投げてみた.ドキュメントから PUT のリクエストが実行されると思ったら,以下のような GET と PUT のリクエストが 2 回送信されることになった.

コンソールから以下のように実行すると,

> Person.find( 1 ).put( :promote, :position => 'Manager' )

サーバーでは以下のようなログが出力される.

Started GET "/people/1.xml" for 127.0.0.1 at 2011-04-25 00:00:00 +0900
...
Started PUT "/people/1/promote.xml?position=Manager" for 127.0.0.1 at 2011-04-25 00:00:00 +0900

動作自体はこれはこれで動いてはいるけど,update をするためにリクエストが 2 回送信されるというのは,やっぱり無駄なような.一回で済ませるには以下のように実行すると,動作することがわかった.

> Person.new( :id=>1 ).put( :promote, :position => 'Manager' )

わかったのはいいんだけど,CustomeMethod を利用した場合は,レスポンスを自分で Hash.from_xml なりしてパースをしないといけないのが面倒だなぁ.なんか他にうまいやり方はあるんだろうか…?


about me

いろいろと興味を持ったことを書いてます.ちょっとしたことは hb(@smallstyle) on Twitter で書いてます.

Archive

2003|01|02|03|04|05|06|07|08|09|10|11|12|
2004|01|02|03|04|05|06|07|08|09|10|11|12|
2005|01|02|03|04|05|06|07|08|09|10|11|12|
2006|01|02|03|04|05|06|07|08|09|10|11|12|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|03|04|05|06|07|08|09|10|12|
2009|01|02|03|04|05|06|07|08|09|10|11|12|
2010|01|02|03|04|05|06|07|08|09|10|11|12|
2011|01|02|03|04|05|06|07|08|09|10|11|12|
2012|01|02|03|04|05|06|07|08|09|10|11|12|
2013|01|02|03|04|05|06|07|08|09|10|11|12|
2014|01|02|03|04|05|06|07|08|09|10|11|12|
2015|01|02|03|04|05|06|07|08|09|10|11|12|
2016|01|02|03|04|05|06|07|08|09|12|