Я создал метод API для публикации. Я указываю в route.rb, что он должен вызываться только через: post, но когда я вызываю API через браузер, он жалуется, что ему не хватает GET-маршрутов. Что не так?
class Api::XyzsController < ApiController
# POST /api/create_xyz
def create_xyz
product = Product.find(params[:rpt_id])
Xyz.create!(:product_id => product.id ,
:status => 'open',....)
render :json => {:message => 'Submitted.'}, :status => :ok
end
end
маршруты.rb
...
namespace 'api' do
match 'create_xyz' => 'xyzs#create_xyz', :via => [:post]
end
опубликовать в браузере, http://localhost/api/create_xyz?rpt_id=123 получить ошибку:
No route matches [GET] "/api/create_xyz
сгенерированный маршрут:
api_report_xyz POST /api/report_xyz(.:format) {:format=>"json", :action=>"report_xyz", :controller=>"api/xyzs"}
если я добавлю переход через в route.rb, это исправит. Но я не понимаю, почему он настаивает на получении, когда это вызов метода post....