Я не уверен, что вы хотите бороться с конвенциями Rails здесь, но с ними гораздо проще согласиться, поэтому, если вы согласны с этим, вы можете сделать следующее:
Удалите это из ваших маршрутов:
map.resources :messages, :collection => { :destroy => :get }
Измените его на:
map.resources :messages
И используйте вместо этого этот формат ссылки:
<%= link_to "Delete Message", message_path(:id => "1"), :method => 'delete' %>
URL для разрушающего действия будет выглядеть как /messages/1
, но часть «method» этого метода link_to
заставит Rails создать скрытую форму и выполнить симулированное действие «DELETE» для URL. Что гораздо более RESTful, и следует тому, что Rails ожидает от вас.