Thanks for the reply, I have 2 partials...
app/views/companies/_city_form_column.html.erb app/views/companies/_state_form_column.html.erb On create, when i choose a state it updates the city <select>, then i can choose a city and save the record. But when i want to edit a record the choosen state/city for that record is not selected on the <select>. Is it possible to have these fields overriden for create only? If you did not understand what im trying to explain, please reply. 2009/2/10 Kenny Ortmann <[email protected]> > You need to look at the html of the select after it is updated. > make sure that the name of the select is the same before and after your > dynamic update. > > You said that on edit it doesn't set the proper values on the select. which > select are you talking about, the state select, or are you talking about the > cities select after you choose a state? > > what is the name of the partial that you created? > > > On Tue, Feb 10, 2009 at 7:10 AM, Rafael <[email protected]> wrote: > >> >> Hello, >> >> I found a way to make it work =). >> The partial stays like this: >> >> <dt><label for="record_state_">Estado</label></dt> >> <dd> >> <%= collection_select(nil, nil, State.find(:all), :id, :name, >> {:prompt => "Selecione..."}, >> {:onchange => remote_function(:url => {:action => >> "on_state_id_change"}, >> :with => "'state_id='+value"), >> :class => "state-input", >> :id => "record_state_", >> :name => "record[state][id]"}) >> %> >> </dd> >> >> Then the method on the controller: >> def on_state_id_change >> render :update do |page| >> cities = State.find(params[:state_id]).cities >> page.replace 'select_city', >> "<div id='select_city'><dt><label >> for='record_city_'>Cidade</label></dt><dd>" + >> collection_select(nil, nil, cities, :id, :name, >> {:prompt => "Selecione..."}, >> {:class => "city-input", >> :id => "record_city_", >> :name => "record[city][id]"}) + "</dd></div>" >> end >> >> Works for create/show, but when i edit a record it doesn't set the >> proper values on the select, >> my guess is that it happens because of the partials, can anyone help >> me here? >> What should be done? >> >> Thanks, >> >> Rafael >> >> >> On 5 fev, 17:17, Rafael <[email protected]> wrote: >> > I'm trying to do this based on this post > >> http://pullmonkey.com/2008/3/30/dynamic-select-boxes-ruby-on-rails >> > I created 2 partials >> > >> > _state_form_column.rhtml >> > >> > <label>Estado</label> >> > <%= collection_select(nil, :state_id, states, :id, :name, >> > {:prompt => "Selecione um Estado"}, >> > {:onchange => "#{remote_function(:url => >> > {:action => "update_cities"}, >> > :with => >> > "'state_id='+value")}"}) %> >> > >> > and >> > >> > _city_form_column.rhtml >> > <label>Cidade</label> >> > <%= collection_select(nil, :city_id, cities, :id, :name, >> > {:prompt => "Selecione uma cidade"}) %> >> > >> > And on the controller i have a method: >> > def update_cities >> > states = State.find(params[:state_id]) >> > cities = states.cities >> > >> > render :update do |page| >> > page.replace_html 'cities', :partial => >> > 'state_form_column', :object => cities >> > end >> > end >> > >> > Webrick boots fine, but when i try to insert a new record i get this >> > error on development.log >> > >> > ActionView::TemplateError (undefined local variable or method `states' >> > for #<ActionView::Base:0xb6e2dd9c>) on line #2 of app/views/ >> > neighborhoods/_state_form_column.rhtml: >> > 1: <label>Estado</label> >> > 2: <%= collection_select(nil, :state_id, states, :id, :name, >> > 3: {:prompt => "Selecione um Estado"}, >> > 4: {:onchange => "#{remote_function(:url => >> > {:action => "update_cities"}, >> > 5: :with => >> > "'state_id='+value")}"}) %> >> > >> > Looks pretty obvious, but i don't know how to fix this. >> > Am i on the right way? >> > >> > Rafael >> > >> > On 5 fev, 09:51, Rafael <[email protected]> wrote: >> > >> > > Hello, >> > >> > > Thanks for the quick replies. I think in my case >> > > AJAX will be more suitable, so Wes if you can >> > > share that code i'll appreciate. >> > >> > > Rafael >> > >> > > On 3 fev, 23:56, Wes Gamble <[email protected]> wrote: >> > >> > > > I have done something like this using AJAX calls to generate the >> > > > dependent select's options. >> > >> > > > If the Railscast doesn't help, let me know and I can send you some >> code. >> > >> > > > Wes >> > >> > > > Rafael wrote: >> > > > > Hi, >> > >> > > > > How can i make a dynamic select? Suppose i have 3 models Country, >> > > > > State and City. >> > > > > City belongs_to State and State belongs_to Country. >> > > > > Then i have a model that belongs_to the 3 models above. >> > > > > What i want to do is when i select a country it updates the State >> > > > > select with states from that country, >> > > > > then i select a State and it updates the city select with cities >> from >> > > > > that State. >> > > > > Any ideas? examples? >> > >> > > > > Thanks, >> >> > > > > --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "ActiveScaffold : Ruby on Rails plugin" 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/activescaffold?hl=en -~----------~----~----~----~------~----~------~--~---
