Hello,
Did this email ge tto the mailing list??
Thanks

2009/9/8 Marcos Müller <[email protected]>

> Hello everybody,
>
> I'm having a "simple" problem but is taking me a long time to understand
> and i'll try to do a short and a full explanation about the problem...
>
> *<short explanation>*
> I'm quite beginner at rails and i'm facing a weird problem to make a two
> select boxes working dynamic. I have a table called conditions and this
> table has condition_type and condition_value. I want to put in the first
> select all the condition types and as an user select a type the condition
> values for that type (this means all the rows that have
> condition_type=selected) will be show in a second select.
>
> So far i'm trying different approachs like railcast #88 or
> http://pullmonkey.com/2008/3/30/dynamic-select-boxes-ruby-on-rails/ but i
> dont know what is happening.
>
> When i select the condition_type the on_change method is called and then
> the controller is called and make the correct search on the database and i
> can get the correct response at firebug but the second select is not
> rendered with the new data.
>
> *</short explanation>*
> *<complete explanation>*
>
> So far, my code is:
>
> *rules_controller.rb
> def new
>       @rule = Rule.new
>       @condition_type = Condition.find(:all, :select => 'DISTINCT
> condition_type')
>       @condition_value = Condition.find(:all, :select => 'DISTINCT
> condition_value')
> end
>
> def update_condition_value
>     @condition_value  = Condition.find(:all, :conditions => {
> :condition_type => params[:condition_type]})
>     render :action => "update_condition_value.js.rjs"
> end
>
> _form_new.html.erb
>     <%  form_for @rule do |rule_form| %>
>     Name: <%= rule_form.text_field :rule_name %>
>     Condition type: <%= select_tag 'condition_type[]',
>
> options_from_collection_for_select(@condition_type, 'condition_type',
> 'condition_type'),
>                                              {:onchange =>
> remote_function(:url  =>
>                                              {:action =>
> "update_condition_value"}, :with => "'condition_type='+value")} %>
>
>     <div id="condition_value_div">Condition value: <%= render :partial =>
> 'condition_value'%></div>
>     <%= rule_form.submit "Submit" %>
>     <%end%>
>
> _condition_value.html.erb
>     <%= select_tag 'condition_value',
> options_from_collection_for_select(@condition_value, 'condition_value',
> 'condition_value')%>
>
> update_condition_value.js.rjs
>      page.replace_html 'condition_value_div', :partial =>
> 'condition_value'e')*
>
> The problem that i'm facing is that when i select some condition_type the
> on_change is activated and then they call the update_condition_value.js.rjs
> and i can see from the firebug that i receive an response like:
>
> try {
> Element.update("condition_value_div", "<select id=\"condition_value\" 
> name=\"condition_value\"><option value=\"private\">private</option>\n<option 
> value=\"public\">public</option></select>\n\n");
>
> } catch (e) { alert('RJS error:\n\n' + e.toString()); 
> alert('Element.update(\"condition_value_div\", \"<select 
> id=\\\"condition_value\\\" name=\\\"condition_value\\\"><option 
> value=\\\"private\\\">private</option>\\n<option 
> value=\\\"public\\\">public</option></select>\\n\\n\");'); throw e }
>
> as it should be... This means that they went to the controller and make the
> correct call from the database as i can see at the log at netbeans. But the
> problem is that the page is not rendered or any changes occoru with the
> second select.
>
> So, i can say that every step is working until the call from the controller
> at update_condition_value but looks like i have an mismatch or error at
> render :action => "update_condition_value.js.rjs" call.
>
> I think maybe could be a problem with my routes cause when i see the log
> after i select something at the first select i get this:
>
> *  Processing RulesController#update_condition_value to json (for
> 127.0.0.1 at 2009-09-08 14:43:18) [POST]
>   Parameters: {"format"=>"json", "condition_type"=>"group",
> "action"=>"update_condition_value", "controller"=>"rules"}
>   [4;36;1mCondition Load (0.0ms)[0m   [0;1mSELECT * FROM `conditions` WHERE
> (`conditions`.`condition_type` = 'group')
>   Rendering rules/update_condition_value
>   [4;35;1mCondition Columns (0.4ms)[0m   [0mSHOW FIELDS FROM
> `conditions`[0m
>   Rendered rules/_condition_value (1.8ms)
>   Completed in 89ms (View: 2, DB: 5) | 200 OK [
> http://localhost/rules/update_condition_value]*
>
> and i understand that they are trying to render the content at
> http://localhost/rules/update_condition_value but the address that i'm
> using is http://localhost:3000/coreui/privacy/1/rules/new
> as u can see at the routes file:
> *
>      map.resources :rules, :path_prefix => '/coreui/privacy/:user_id'*
>
> I dont know what else i should do to make this work and any help or tips
> will be welcome!
>
> Thanks in advance...
>
> </complete explanation>
>
> --
> Marcos Müller Lopes Fonseca
> Arquiteto da Informação - MAV Tecnologia
> Gerente de projetos - UFMG Informática Jr.
> Sistemas de Informação - UFMG
> [email protected] / 87553132
>



-- 
Marcos Müller Lopes Fonseca
Arquiteto da Informação - MAV Tecnologia
Gerente de projetos - UFMG Informática Jr.
Sistemas de Informação - UFMG
[email protected] / 87553132

--~--~---------~--~----~------------~-------~--~----~
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
-~----------~----~----~----~------~----~------~--~---

Reply via email to