[Ror-es] Select Helper dependientes
Antonio Pardo
antonio.pardo at gmail.com
Mon Jul 9 20:53:54 GMT 2007
Buenas,
El Monday 09 July 2007 15:11:13 William Betancur escribió:
> yo intente utilizar este plugin y no me funciono, por favor nos explicas
> como lo lograstes?
> puedes hacer tres selects dependientes?
> y en un formulario de consulta se carga los selects con los valores que
> son?
si, la prueba que he hecho ha sido con tres modelos. Ahí va un ejemplo, la
vista:
<%= select 'country', 'id', Country.find(:all).map {|x| [x.name, x.id]} %>
<div id="cities">
<%= select 'city', 'country_id', Country.find(@country.id).cities.map
{|x| [x.name, x.id]} %>
</div>
<div id="houses">
<%= select 'house', 'city_id', City.find(@city.id).houses.map {|x| [x.name,
x.id]} %>
</div>
@country viene de seleccionar el país por defecto que quieras que aparezca en
el select.
Los modelos son algo así:
class Country < AR::Base; has_many :cities; end
class City < AR::Base; belongs_to :country; has_many :houses; end
class House < AR::Base, belongs_to :city; end
Y los métodos del controlador:
def on_country_id_change
render :update do |page|
@cities = Country.find(params[:dom_value]).cities
@houses = City.find(params[:dom_value]).houses
page.replace_html 'cities',
:inline => "<%= select 'city', 'country_id', @cities.map {|o| [o.name,
o.id]} %>"
page.replace_html 'houses',
:inline => "<%= select 'house', 'city_id', @houses.map {|o| [o.name,
o.id]} %>"
end
end
def on_city_country_id_change
render :update do |page|
@houses = City.find(params[:dom_value]).houses
page.replace_html 'houses',
:inline => "<%= select 'house', 'city_id', @houses.map {|o| [o.name,
o.id]} %>"
end
end
Nos vemos
--
http://www.theprimusproject.com/
More information about the Ror-es
mailing list