Say I have a Dog that has_may legs (In this case we don’t care how
many).
In the _form for Dog, I would like to assign a pre-existing let to him.
I
would like to do something like this:
The problem is that the collection_select is trying to set the leg_1
value
as part of Dog, which of course does not exist. Do I need to create
‘view
model’ for doing this?
While I believe it is possible to use fields_for, as you mentioned in
your
replies, you do not have to. Here is a possible solution:
app/controllers/dogs_controller.rb
class DogsController < ApplicationController
def new @dog = Dog.new @legs = Leg.where(:dog_id => nil)
end
def create @dog = Dog.new(params[:dog]) @dog.save
end
end
Thank. Yeah, I basically ended up doing something similar. I use
‘leg[]’
in my select tag, and then manually hooked things up in the back end…
I
wonder if in your solution if things would have been connected for me?
Never mind just tried it, I still have to hook things up manually in the
backend.
Thanks for the help, good to know that I am not crazy.
You should not have to do any manual association. If you have
params[:dog][:leg_ids] = […], it should work; you may need to set
attr_accessible
:leg_ids in your Dog model. Show your solution, and maybe we can
refactor
it to use less code.