ryan heath
2006-Jul-16 03:53 UTC
[Rails] HELP - Save drop down list using "collection_select"
Each post has a single category, which I''m filling a drop down list by using this: #view <p><label for="post_type_id">Category</label><br /> <%= collection_select(:id, :type_id, Type.find(:all), :id, :category) %> </p> In my Post model I have a field called "type_id" which is to be filled by the id in the Type table upon selection. When I click "create" on my Post, I want it to get whichever category is selected, and save it in the "type_id" field. I don''t know if I''m going about this wrong or not. I''ve never done this before, and can''t get it to work. I get the drop down list to populate from the Type table, but that''s it. Also, what about editing? When I edit, will it load the selected type? Thanks a lot for any thoughts on this! -- Posted via http://www.ruby-forum.com/.
Scott Helfrich
2006-Jul-16 07:27 UTC
[Rails] Re: HELP - Save drop down list using "collection_select"
ryan heath wrote:> Each post has a single category, which I''m filling a drop down list by > using this: > > #view > <p><label for="post_type_id">Category</label><br /> > <%= collection_select(:id, :type_id, Type.find(:all), :id, :category) %> > </p> > > In my Post model I have a field called "type_id" which is to be filled > by the id in the Type table upon selection. When I click "create" on my > Post, I want it to get whichever category is selected, and save it in > the "type_id" field. I don''t know if I''m going about this wrong or not. > I''ve never done this before, and can''t get it to work. I get the drop > down list to populate from the Type table, but that''s it. > > Also, what about editing? When I edit, will it load the selected type? > > Thanks a lot for any thoughts on this!Read through this thread and I think it will help you. I struggled with this several days ago and some good folk on the board helped me out. I''m new to this myself and I''m not confident I can explain it well enough in the right terminology yet to be accurate as I should be, and I don''t want to confuse you, but what you want to do, I wanted to do - and have done now and it works very well. http://www.ruby-forum.com/topic/72227#new Try that thread. Of course you will have to map my fields to your own. Read the whole thread as I was not interested in returning an id; I wanted just the cateory field value itself. And yes, it will load the one from the record when editing! That was something I had to have happen. I hope this helps. Scott -- Posted via http://www.ruby-forum.com/.
Kevin Olbrich
2006-Jul-16 12:33 UTC
[Rails] HELP - Save drop down list using "collection_select"
On Sunday, July 16, 2006, at 5:52 AM, ryan heath wrote:>Each post has a single category, which I''m filling a drop down list by >using this: > >#view ><p><label for="post_type_id">Category</label><br /> ><%= collection_select(:id, :type_id, Type.find(:all), :id, :category) %> ></p> > >In my Post model I have a field called "type_id" which is to be filled >by the id in the Type table upon selection. When I click "create" on my >Post, I want it to get whichever category is selected, and save it in >the "type_id" field. I don''t know if I''m going about this wrong or not. >I''ve never done this before, and can''t get it to work. I get the drop >down list to populate from the Type table, but that''s it. > >Also, what about editing? When I edit, will it load the selected type? > >Thanks a lot for any thoughts on this! > >-- >Posted via http://www.ruby-forum.com/. >_______________________________________________ >Rails mailing list >Rails@lists.rubyonrails.org >http://lists.rubyonrails.org/mailman/listinfo/railsThis usually works <%= select ''post'', ''type_id'', Type.find(:all).map {|x| [x.name, x.id]} %> I would avoid using ''Type'', ''type'', or any variation of this if you can. ''type'' is a magic column name used for single table inheritance and will probably cause all sorts of weird bugs. It''s also a ruby keyword. _Kevin www.sciwerks.com -- Posted with http://DevLists.com. Sign up and save your mailbox.