создание формы для удаления ресурса - PullRequest
0 голосов
/ 18 ноября 2010

У меня есть ресурс подписчика (список рассылки) и я хочу сделать форму отказа от подписки.Я создал представление удаления с формой

<%= form_for(Subscriber.new, :action => :delete) do  %>   
 email: <%= text_field_tag :mail %>   
 <%= submit_tag "Sign out" %> 
<% end %>

Я пытаюсь вызвать метод удаления контроллера, но вместо этого вызывается действие редактирования.

Ответы [ 2 ]

8 голосов
/ 18 ноября 2010

Проблема в том, что для маршрутов RESTful к действию уничтожения требуется: id ресурса, который нужно удалить, и, поскольку вы используете Subscriber.new в качестве источника для создания формы, он не может создать соответствующий URL для публикации.

Вы можете обойти это, используя такие маршруты:

<% form_for(:subscriber, :url => subscriber_path("email"), :html => {:method => :delete}) do  %>
  email: <%= text_field_tag :mail %>
  <%= submit_tag "Sign out" %>
<% end %>

Обратите внимание, что вы должны отредактировать subscriber_path для своей собственной маршрутизации, но, используя «email» в качестве идентификатора, вы убедитесь, что на контроллер не передается faulthy: id, и вы можете использовать электронную почту, чтобы найти правильную модель для уничтожения как я думаю, это было то, что вы хотели сделать.

2 голосов
/ 18 ноября 2010
<%= form_for @subscriber, :method => :delete do  %>   
  email: <%= text_field_tag :mail %>   
  <%= submit_tag "Sign out" %> 
<% end %>

Это должно сработать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...