「レーキルート」を実行すると、リストに表示される次のルートがあります。
page_upload_image POST /pages/:page_id/upload_image(.:format) pages#upload_image
ルートファイルには次のものもあります。
resources :pages do
post :sort, :on => :collection
post :upload_image, :on => :collection
end
次に、JavaScript を使用して、以下から取得した値をキャプチャして POST します。
%form.new-page-image{:class => "hide", :action => "/pages/#{@page.id}/upload_image"}
%input.page_image{:type => "file", :name => "page[image]", :multiple => "true"}
ページコントローラーの upload_image アクションには次のものがあります。
def upload_image
image = params[:page][:image]
uploader = PageImageUploader.new
uploader.store!(image)
render json: uploader.to_json
end
何らかの理由で、ルートが存在するにもかかわらず、投稿すると次のようになります。
ActionController::RoutingError (No route matches [POST] "/pages/1/upload_image"):
正当に見える (rake ルートを実行すると正しく表示される) ルートに投稿しようとすると、なぜこのエラーが返されるのか疑問に思っています。