I am implementing in Ruby on Rails and I am trying to work with the collection_select, I’m a newbie. I just want to do, I have a list with groups and a list with roles. These are both models. So, I list my groups, and next to that, I have a dropdown list with the role for the group. each group has 1 role.
I implemented some code already, but the collection_select always only remembers the last item. So I want a list with groups, connected with the desired role. But, now I only have 1 item. This is my view:
<% @groups.each do |group| %>
<li>
<%= collection_select('group', 'role_id', @roles, 'id', 'name') %>
</li>
<% end %>
I don’t really know what to do now? Someone who knows what I am doing wrong?
Thanks
So, I assume that you’re doing a form? What model does the form belong to?
To help debug this sort of thing, usually it’d be a good idea to check your development.log file to see what parameters the form is passing to the controller. Something like:
Now, usually a Rails controller is expecting a form with the data for a single model. If you’re wanting to update multiple models or rows at the same time, you’re going to have to get creative.
First thing to do might be to try returning an array of groups. Your form at the moment is not using an array. I doubt that these Rails helpers will help you though. Helpers like these are designed to update one ActiveRecord object at once.
It’s possible you may need to rethink the design of your app to better fit the Rails way, or roll your own form and iterate over the array that it passes through. Doing it the Rails way is the recommended option, it just might take some brain bending from your end to figure that part out. If you need help, maybe provide more information on what you’re actually trying to achieve.