В соответствии с маршрутами рейка, для получения индекса объектов используется тот же путь, что и для создания нового объекта:
cars GET /cars(.:format) {:controller=>"plugs", :what=>"car", :action=>"index"}
POST /cars(.:format) {:controller=>"plugs", :what=>"car", :action=>"create"}
Очевидно, что глагол HTTP - это то, что различает их. Я хочу "создать" версию метода cars_path, а не версию "index". У меня вопрос, какой метод маршрута вы используете, чтобы выбрать тот, который вы хотите? Я говорю огурцу, какой путь сгенерировать с этим:
when /the car plug preview page for "(.+)"/
cars_path(:action => :create, :method => :post)
... но он всегда выбирает действие «index», а не «create». Я перепробовал множество комбинаций для аргумента хеша, следующего за cars_path, и ничто не меняет его при выборе «index» вместо «create».
Я получу ошибку, подобную этой:
cars_url failed to generate from {:controller=>"plugs", :method=>:post,
:what=>"car", :action=>"create"}, expected: {:controller=>"plugs", :what=>"car",
:action=>"index"}, diff: {:method=>:post, :action=>"index"}
(ActionController::RoutingError)
Это кажется очень простым вопросом, но мне не повезло, гуглить, поэтому мог бы воспользоваться некоторыми советами. Благодарю.