ビュー ファイルでは、私のコードは次のようになります。
<%= link_to refresh_post_user_post_path(@user,@post), :method => :put%>
routes.rb で:
resources :users do
resources :posts do
member do
put :refresh_post
end
end
end
興味深いのは、コントローラーでリクエスト オブジェクトを検査するときです。
def refresh_post
... ...
p request.method # => POST
p request.request_method # => PUT
... ...
end
メソッドとリクエストメソッドが違うのはわかっているのですが、POSTリクエストはどこから?
さらに:
$ rake routes
refresh_post_user_post_path PUT /users/:user_id/posts/:id/refresh_post, {:action => "refresh_post", :controller => "posts"}
私は Rails 3.0.11 と Ruby ree-1.8.7 を使用しています。上記のすべてが例外なく動作します。しかし、リクエストが POST である理由を知っている人はいますか?