How do you set a custom id when using a check_box_tag helper in rails?
I have a loop which creates a bunch of checkboxes based on a collection:
- subject.syllabus_references.each do |sr|
= check_box_tag 'question[syllabus_reference]', sr.id, :id => sr.id
= label_tag sr.id, sr.name
I would like to set a custom id so that my Label for the checkbox works correctly but I can't seem to figure out how (:id => sr.id does not work...).
The problem might also be with the way I've defined the label, so if I can get that to reference the correct check box without setting a custom id then that would be fine also...
Leito,
Just to close the loop, I gave up trying to pass an object type indicator in through check_box_tag. Every parameter I added to the syntax shown in my last post above (below??) simply caused the checkbox state to default to checked rather than unchecked, without passing any additional data to the controller.
While remaining alert to alternative solutions as they present themselves, for the time being I incorporate the object type into the submit_tag value. This ties the functionality to the display, since the submit_tag value is what's shown to the user on the submit button, but it could be argued that this forces clarity into the view even as it provides needed disambiguation to the controller.
Learning day by day...
Think I figured it out...
This works but if you have a better way let me know!
I used this in my application to create checkbox tags from collection and submit an array of them:
So in params, I have an array "curso_ids"=>["1", "3", "5"] instead of a string "curso_ids"=>"5". If you want to return a single value, use vaga[curso_id], otherwise use vaga[curso_ids][] to return an array.
If you give the check box an extra parameter it will work:
@Ganesh, in your solution the resulting params hash has the following form:
These should work better for you:
Notice the third parameter (checked) is required for this to work. The resulting params array will be
HAML sample
Lets say you have a
print
object somewhere with aframed
attribute, you have to display a list ofprints
so inside the loop you will create a customrow
andcolumn
with unique id on eachcheckbox
for updatingframed