Удалить несколько объектов в Rails с помощью контроллера RESTful? - PullRequest
5 голосов
/ 05 января 2011

Я хотел бы удалить несколько объектов одного типа с помощью контроллера RESTful.

Самая простая вещь, о которой я могу подумать, это заставить действие destroy ожидать запятый список идентификаторов объектов для уничтожения.

Есть ли более элегантный способ сделать это?

Ответы [ 3 ]

3 голосов
/ 05 января 2011

Я думаю, что было бы более элегантно взять массив идентификаторов:

http://guides.rubyonrails.org/action_controller_overview.html#hash-and-array-parameters

2 голосов
/ 06 января 2011

Вы можете использовать для этого вложенные формы ..

См. http://ryandaigle.com/articles/2009/2/1/what-s-new-in-edge-rails-nested-attributes

Я думаю, это самая элегантная версия ...

<% form_for @person do |person_form| %>

  <%= person_form.label :name %>
  <%= person_form.text_field :name %>

   <% person_form.fields_for :children do |child_form| %>

     <%= child_form.label :name %>
     <%= child_form.text_field :name %>

     <% unless child_form.object.new_record? %>
     <%= child_form.check_box '_delete' %>
     <%= child_form.label '_delete', 'Remove' %>
   <% end %>
  <% end %>

  <%= submit_tag %>
<% end %>
0 голосов
/ 05 января 2011

Вот как может выглядеть запрос RESTful.

POST /posts/delete_multiple HTTP/1.1
Host: www.example.com

post_ids[]=33&post_ids[]=47&post_ids[]=88

Обратите внимание, что хотя GET, PUT и DELETE имеют очень специфические значения в контексте REST, значение POST большерасплывчато и по сути означает предпринять какие-то действия.Требуемое действие указывается в URL-адресе, а дополнительные данные, относящиеся к этому действию, передаются в сущности (теле) запроса.Используйте POST таким образом, только когда GET, PUT и DELETE не имеют предполагаемого значения.

POST обычно интерпретируется как «создать», но это не совсем так.правильный.Мы обычно используем POST для создания новых ресурсов, когда клиент не знает, каким должен быть URL вновь созданного ресурса.Но когда клиенту удается определить URL вновь созданного ресурса, правильным глаголом будет PUT.

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