Problemas con obseve_field o form_for?

Saludos para todos los miembros de esta lista de correos.

Tengo un ‘aparente’ problema con observe_field o form_for. Digo aparente
porque no se si realmente allí está el problema, pero sospecho que debe
estarlo.

Estoy intentando hacer un formulario para filtrar los inmuebles en la
base de datos. La idea consiste en que el usuario debe seleccionar a
través de un ‘’ la ciudad y, mediante ‘obvserve_field’,
actualizar otro ‘’ que lista los barrios de dicha ciudad.

Bien, el tema es que el segundo ‘’ se actualiza correctamente,
es decir, cuando cambio el valor del primer ‘’, se actualizan
los valores del segundo, pero no me envía el valor del ‘’ del
barrio cuando selecciono una ciudad. Si no selecciono ninguna ciudad, es
decir, dejo el valor por defecto en ambos ‘’ sí me envía el
valor del ‘’ del barrio.

En: Inmuebles/index
<% form_for :post, @inmuebles, :url => ‘/inmuebles’, :html =>{ :method
=> :get }do |f| %>

Ciudad <%= select_tag 'city_filter', 'Todas' + options_from_collection_for_select( City.all, :id, :name ) %> Barrio <%= observe_field 'city_filter', :frequency => 0.5, :update => 'neighborhood-replace', :url => {:controller => 'inmuebles',:action=>'update_simple_form', :only_path => false}, :with => "'city_id=' +value" %>
<%= render :partial=>'update_simple_district' %>
<% end %>

En: InmueblesController
def update_simple_form
@city = City.find_by_id(params[‘city_id’])
render :partial=>‘update_simple_district’ , :layout=>false
end

En: Inmuebles/_update_simple_district

<% if !@city.nil? %>
<%= select_tag ‘district_filter’, ‘Todos’ +
options_from_collection_for_select( @city.districts.find(:all,
:conditions => [‘city_id = ?’, @city.id]), :id, :name )%>
<% else %>
<%= select_tag ‘district_filter’, ‘Todos’ %>
<% end %>

[ ~ ] rails -v
Rails 2.3.5
[ ~ ] ruby -v
ruby 1.9.1p378 (2010-01-10 revision 26273) [x86_64-linux]

Desde ya, muchas gracias por su tiempo.

Andres

Hola a todos.

Posteo la solución que encontré para este problema, posiblemente le
sirva a alguien más.

No entiendo exactamente cuál es el problema (soy muy novato aún con
Rails), pero, aparentemente lo correcto no es reemplazar el ‘’,
sino sus ‘’.

El código para actualizar los valores del ‘’ que utilicé es el
siguiente:

En: Inmuebles/_update_simple_district

<% if !@city.nil? %>
<%= ‘Todos’ +
options_from_collection_for_select( @city.neighborhoods.find(:all,
:conditions => [‘city_id = ?’, @city.id]), :id, :name ) %>
<% else %>
<%= select_tag ‘neighborhood_filter’, ‘Todos’ %>
<% end %>

Ojalá le sea de ayuda a alguien más.

Saludos.

Andres.

This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.

| Privacy Policy | Terms of Service | Remote Ruby Jobs