Form collects multiple parameters from a select list (multiple enabled)
what kind of code do i need in the controller ?
Stuart
–
Form collects multiple parameters from a select list (multiple enabled)
what kind of code do i need in the controller ?
Stuart
–
On 10/22/06, Dark A. [email protected] wrote:
Form collects multiple parameters from a select list (multiple enabled)
what kind of code do i need in the controller ?Stuart
Not making much progress here , so let me give more detail:
Form has this element -
select name=canindustry[category_id][] size=“6” multiple=“multiple”>
<%= options_from_collection_for_select @categories, :id, :name %>
Params being submitted (example)
Parameters: {“commit”=>“Create”, “canindustry”=>{“category_id”=>[“2”,
“3”,
“4”, “5”]},
The fields in the canindustry model are: id | candidate_id |
category_id
I want to insert multiple rows , so using above parameters
id | candidate_id | category_id |
1 11 2
2 11 3
3 11 4
4 11 5
Problem is in my controller where i"ve tried a few different ways with
no
success:
Right now I have this in the create action:
@canindustry.candidate_id = current_user.id
a = (params[:canindustry])
a.each {|x| a.canindustry.save
}
and getting back an error -
“You have a nil object when you didn’t expect it!
The error occurred while evaluating nil.candidate_id=”
???
Stuart
Not much around on this googling. Anyone ever do this before ?
On 10/22/06, Dark A. [email protected] wrote:
The fields in the canindustry model are: id | candidate_id |
success:
“You have a nil object when you didn’t expect it!
The error occurred while evaluating nil.candidate_id=”???
Stuart
–
Dark A. wrote:
“3”, “4”, “5”]},
Problem is in my controller where i"ve tried a few different ways with no
success:
Right now I have this in the create action:@canindustry.candidate_id = current_user.id
I assume you set @canindustry somewhere to a proper object, but
the error stated otherwise.
a = (params[:canindustry]) a.each {|x| a.canindustry.save
}
Here I think params[:canindustry][:category_id] will give you the array
[] of selected category ids.
Each ‘a’ element is a String, which dnu #canindustry let alone #save.
Seems to me you need something like the following in your a.each block.
canindustry = Foo.new
canindustry.candidate_id = current_user.id
canindustry.category_id = x
canindustry.save
Long
www.edgesoft.ca
On 10/22/06, Long [email protected] wrote:
1 11 2
I assume you set @canindustry somewhere to a proper object, but
the error stated otherwise.
Yeah , it was set up as a proper object though I was getting all sorts
of
errors.
canindustry = Foo.new canindustry.candidate_id = current_user.id canindustry.category_id = x canindustry.save
Yep , it works ! Thank you!
a = (params[:canindustry][:category_id])
a.each {|x|
canindustry = Canindustry.new
canindustry.candidate_id = current_user.id
canindustry.category_id = x
canindustry.save }
Let this thread serve as a warning jumping to fast into Rails without
having
Ruby array methods burned deeply in your brain.
Stuart
–
This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.
Sponsor our Newsletter | Privacy Policy | Terms of Service | Remote Ruby Jobs