hey.. thanx man.. i was wondering why my code wasn't working.. well my problem was similar to yours, but a little bit different.. but you gave me a concrete solution to my problem through this thread.. thanx.. good luck :)
On 4월9일, 오전1시19분, LukeG <[email protected]> wrote: > Thanks for the replies. The code, as y'all noted, was incorrect. This > fixed it: > > collection_select(:observation, > :observation_category_id, > > ObservationCategory.find(:all), > :id, > :name) > > I read somewhere that if the :method parameter returns a value in > the :value parameter, that value will default to the selected item in > the list, and this turned out to be true, thus eliminating the need > for :selected. > > If I understand your points, the f.collection_selectsyntax is > preferred over what I have. I'll make that update, and thanks for the > advice. > > -Luke > > On Apr 7, 11:56 pm, Ram <[email protected]> wrote: > > > ive come across this problem and as far as my searching took me, > >collection_selectdoes not support the :selected option. > > you can handle this by initializing the "selected" value in the > > controller for the appropriate attribute before rendering the partial. > > > The code you have shown above is slightly flawed in the syntax of > >collection_selectas Fred has already pointed out. I think you want > > > <%= f.collection_select:observation_category_id, > > ObservationCategory.find(:all), :id, :name %> > > > So in your case, the problem really was the syntax. The above should > > work for your edit form ie. the correct option will be selected based > > on the existing value (built intocollection_select). > > > The lack of support for the :selected option incollection_select > > however, is a side issue. Anyone know if there's a fix for it? Besides > > initializing the value for it in the controller before rendering the > > partial? > > > On Apr 7, 12:43 pm, Frederick Cheung <[email protected]> > > wrote: > > > > On Apr 7, 5:21 am,LukeG<[email protected]> wrote: > > > > > I'm a noob. I've trolled the web and groups for help, but I just don't > > > > know enough Rails to apply the solutions to my particular problem. I > > > > even got the screencast from Pragmatic Programmers, but still no dice. > > > > > I'm having a problem getting mycollection_selectto initialize with a > > > > previously stored value. I have items and categories, with many items > > > > to one category. When I edit an item, the category list populates > > > > correctly, but I cannot figure out how to set the default to whatever > > > > category was already stored for that item. > > > >collection_selectis like the various model helpers in that you do > > >collection_select'instance_variable_name', 'method_name', ... > > > ie in this instancecollection_select'observation', > > > 'category_id', ... > > > > Seeing as how you've already got a form_for setup, you should be able > > > to do f.collection_select'category_id', ... > > > Calling it on the form builder means you don't need to tell rails > > > which object you are working with. > > > > Fred > > > > > Running Rails 2.3.2, here is the code: > > > > > *controller:* > > > > def edit > > > > @observation = Observation.find(params[:id]) > > > > end > > > > > *view:* > > > > <%= f.label "Category" %><br /> > > > > <%= > > > > collection_select(:observation_category_id, > > > > @category_id, > > > > > > > > ObservationCategory.find(:all), > > > > :id, > > > > :name, > > > > {:selected => > > > > @observation.observation_category_id}) > > > > %> > > > > > *models:* > > > > class Observation < ActiveRecord::Base > > > > attr_accessible :name, :icon_url, :observation_catategory_id > > > > belongs_to :observation_category > > > > end > > > > > class ObservationCategory < ActiveRecord::Base > > > > has_many :observations > > > > end > > > > > *html:* > > > > <label for="observation_Category">Category</label><br /> > > > > <select id="observation_category_id_" > > > > name="observation_category_id > > > > []"><option value="1">exercise</option> > > > > <option value="2">finance</option> > > > > <option value="3">nutrition</option> > > > > <option value="4">mood</option> > > > > <option value="5">energy</option> > > > > > <option value="6">focus</option> > > > > <option value="7">sleep</option> > > > > <option value="8">junk_cat</option> > > > > <option value="9">satiation</option></select> --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---

