Я пытаюсь следовать этому примеру.
Я создал действие в моем контроллере:
def distribute_resume
Rails.logger.info(distribution_id.to_s)
PartnerNotifier.distribute_resume(distribution_id)
flash[:notice] = "Successfully distributed resume"
redirect_to admin_distributions_workflows_path
end
и я создал маршрут в моем файле `config / rout.rb ':
namespace :admin do
namespace :distributions do
resources :workflows do
collection do
post :edit_multiple
put :update_multiple
post :distribute_resume
end
end
end
end
Я также попытался переместить маршрут к действию за пределы блока сбора следующим образом:
namespace :admin do
namespace :distributions do
resources :workflows do
post :distribute_resume
collection do
post :edit_multiple
put :update_multiple
end
end
end
end
Но я получаю эту ошибку в обоих случаях:
No route matches {:controller=>"admin/distributions/workflows_controller", :distribution_id=>123, :action=>"distribute_resume", :method=>:post}
Я слишком зеленый, чтобы понять это.
Обновление:
ах да, нужно помнить, чтобы чаще проверять rake routes
. Я вижу это:
admin_distributions_workflow_distribute_resume POST /admin/distributions/workflows/:workflow_id/distribute_resume(.:format) {:action=>"distribute_resume", :controller=>"admin/distributions/workflows"}
поэтому я изменил свое мнение:
<%=link_to "Send this resume to #{distribution.matching_profile.partner.email}",
:controller => "workflows", <-- instead of "workflows_controller"
:action => "distribute_resume",
:distribution_id => distribution.id,
:method => :post%>
но я все еще получаю похожее сообщение об ошибке:
No route matches {:controller=>"admin/distributions/workflows", :distribution_id=>121, :action=>"distribute_resume", :method=>:post}