Я также понял, чем Intellisense когда-то 'потерян' на некотором большом проекте. Почему? Никакая идея.
Поэтому мы купили Визуальный, Помогают (от программное обеспечение Tomato ) и отключил Intellisense путем удаления dll feacp.dll в подкаталоге Visual Studio (C:\Program Files\Microsoft Visual Studio 8\VC\vcpackages)
, Это не решение, просто обходное решение.
Я часто добавляю действия update_multiple и destroy_multiple на основе коллекций к контроллеру RESTful.
Посмотрите этот Railscast при обновлении через флажки. Это должно дать вам хорошее представление о том, как к этому подойти, вернитесь и добавьте к этому вопросу, если у вас возникнут проблемы!
Я сталкивался с несколькими ситуациями, подобными описанным вами. Первые пару раз я реализовал форму, почти идентичную той, которую вы предлагаете.
Примерно в третий раз, когда я столкнулся с этой проблемой, я понял, что каждый элемент, который я обновляю, имеет общее отношение own_to с чем-то еще. Обычно пользователь. Это именно то прозрение, которое вам нужно, чтобы понять смысл этого RESTfully. Это также поможет вам очистить форму / контроллер.
Не думайте об этом как об обновлении группы сообщений, думайте об этом как об обновлении одного пользователя.
Вот пример кода, который я использовал в прошлое, чтобы подчеркнуть разницу. Предполагая, что нам нужны массовые операции с сообщениями, принадлежащими current_user ...
Начиная с rails 2.3, мы можем добавить
accepts_nested_attributes_for :messages
в модель пользователя. Убедитесь, что messages_attributes является частью attr_accessible, или не attr_protected.
Затем создайте маршрут:
map.resources :users, :member => {:bulk_message_update, :method => :put}
Затем добавьте действие в контроллер. С возможностями AJAX;)
def bulk_message_update
@user = User.find(params[:id])
@user.update_attributes(params[:user])
if @user.save
respond_to do |format|
format.html {redirect}
format.js {render :update do |page|
...
}
end
else
....
end
Тогда ваша форма будет выглядеть так:
<% form_for current_user, bulk_message_update_user_url(current_user),
:html => {:method => :put} do |f| %>
<% f.fields_for :messages do |message| %>
form for each message
<% end %>
<%= sumbit_tag %>
<% end %>