Topic: Submitting an empty array as a param on POST action
I have a Task model, which is joined in a many-to-many relationship with an Objective model.
I have a Task edit form where a user can associate any Objective with a Task via checkboxes.
<%= form_for @task do |f| %> <% Objective.all.each do |objective| %> <%= check_box_tag :objective_ids, objective.id, @task.objectives.include?(objective), :name => 'task[objective_ids]' %> <% end %> <%= f.button :submit %> <% end %>
Updating a Task seems to work absolutely fine as long as one checkbox is checked by the user, but when the user does not check any checkboxes, the :objective_ids param (which is an array of Objective ids) is not included in the POST action at all. Because of this, when I do @task.update_attributes(params[:task]) in the controller, the Task's collection of Objectives is not updated.
So how can I ensure the :objective_ids param is included in the POST, even if only as an empty array?
Last edited by FREAKMAN (2012-08-23 01:25:38)