Лучшее решение, о котором я мог подумать, - это добавить два новых маршрута участников, сопоставленных с #update и #destroy:
resources :posts do
member do
post :revise, :action => :update
post :annihilate, :action => :destroy
end
end
который добавил эти маршруты, когда вы запускаете 'rake маршруты':
revise_post POST /posts/:id/revise(.:format) {:action=>"update", :controller=>"posts"}
annihilate_post POST /posts/:id/annihilate(.:format) {:action=>"destroy", :controller=>"posts"}
Обратите внимание, что я изначально пробовал это:
resources :posts do
member do
post :update
post :destroy
end
end
в надежде, что он создаст эти маршруты:
update_post POST /posts/:id/update(.:format) {:action=>"update", :controller=>"posts"}
destroy_post POST /posts/:id/destroy(.:format) {:action=>"destroy", :controller=>"posts"}
но вместо этого он создал:
POST /posts/:id(.:format) {:action=>"update", :controller=>"posts"}
POST /posts/:id(.:format) {:action=>"destroy", :controller=>"posts"}
, которые выглядят так, как будто они перекрываются, и вы никогда не сможете добраться до сообщений # destroy.