I read about collection_check_boxes
but I don't understand how can I set the checked values.
I have the following model:
class Objective < ActiveRecord::Base
has_many :indicators
has_many :objective_children, class_name: "Objective", foreign_key: "parent_id"
def objective_ids
objective_children.collect{|o| o.id}
end
def objective_ids= objectives_ids
objectives_ids.each do |id|
objective_children << Objective.find(id)
end
end
end
edit view:
<%= form_for(@objective) do |f| %>
<%= f.collection_check_boxes :objective_ids, Objective.all, :id, :name %>
<%= f.submit %>
<% end %>
the html checkbox are ok but I don't know how to set the values to objective
. I was tried define objective_ids= objectives_ids
but nothing happens.
In Controller:
class ObjectivesController < ApplicationController
def objective_params
params.require(:objective).permit(:name, :code, :description, :objective_ids)
end
end
EDIT
The log file says Unpermitted parameters: perspective_id, objective_ids
I solved changing the line
params.require(:objective).permit(:name, :code, :description, :objective_ids)
to
params.require(:objective).permit(:name, :code, :description, :objective_ids => [])
I get the same problem, try this line:
params.require(:objective).permit(:name, :code, :description, :objective_ids => [])
but does not work and i change to:
params.require(:objective).permit(:name, :code, :description, {:objective_ids => []})
and it works !!
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With