this may be an easy question, but i am unable to solve it: i want to take the selected choice and process it in the controller: TEMPLATE: <%=start_form_tag :action => ''get_article'' %> <select name=pricelist> <%= options_from_collection_for_select (@customers, "id", "name") %> </select> <%= submit_tag "Get" %> <%= end_form_tag %> CONTROLLER: def get_article @pricelist=Pricelist.find(??) @articles=Article.find(@pricelist.pricelist_id) end i want to take the selected id (handed over as a parameter) from customer and get in pricelist the record where customer.id=pricelist.customer_id thank you for your HELP!!!!! -- Posted via http://www.ruby-forum.com/.
Assuming each customer has 0-1 pricelists, which you implied in your e-mail, I believe: @pricelist = Customer.find(params["pricelist"]).pricelist Michael Mosser wrote:>this may be an easy question, but i am unable to solve it: > > >i want to take the selected choice and process it in the controller: > >TEMPLATE: ><%=start_form_tag :action => ''get_article'' %> > ><select name=pricelist> ><%= options_from_collection_for_select (@customers, "id", "name") %> ></select> > ><%= submit_tag "Get" %> > ><%= end_form_tag %> > >CONTROLLER: >def get_article > @pricelist=Pricelist.find(??) > @articles=Article.find(@pricelist.pricelist_id) >end > >i want to take the selected id (handed over as a parameter) from >customer and get in pricelist the record where >customer.id=pricelist.customer_id > >thank you for your HELP!!!!! > > >
This is a job for Rails'' associations. You should read up on them in the ActiveRecord README. http://api.rubyonrails.com/files/vendor/rails/activerecord/README.html In your model classes you should have some class methods like... def Customer < ActiveRecord::Base has_one :pricelist ... end def Pricelist < ActiveRecord::Base belongs_to :customer ... end I''m not sure what to do about Article because you didn''t give enough info about its relationships to other models. Anyway, after you have those associations set up, Rails provides methods like my_customer = Customer.find(...) my_pricelist = my_customer.pricelist That second line is just like doing a Pricelist.find(:first, :condition => "#{my_customer.id} = customer.id"). Rails provides many of those types of methods, and you should learn to use them because they make your life much easier. Michael Mosser wrote:> this may be an easy question, but i am unable to solve it: > > > i want to take the selected choice and process it in the controller: > > TEMPLATE: > <%=start_form_tag :action => ''get_article'' %> > > <select name=pricelist> > <%= options_from_collection_for_select (@customers, "id", "name") %> > </select> > > <%= submit_tag "Get" %> > > <%= end_form_tag %> > > CONTROLLER: > def get_article > @pricelist=Pricelist.find(??) > @articles=Article.find(@pricelist.pricelist_id) > end > > i want to take the selected id (handed over as a parameter) from > customer and get in pricelist the record where > customer.id=pricelist.customer_id > > thank you for your HELP!!!!!-- Posted via http://www.ruby-forum.com/.
Joshua Susser wrote:> my_customer = Customer.find(...) > my_pricelist = my_customer.pricelist > > That second line is just like doing a Pricelist.find(:first, :condition > => "#{my_customer.id} = customer.id"). Rails provides many of those > types of methods, and you should learn to use them because they make > your life much easier.Oops, that should have been Pricelist.find(:first, :condition > => "#{my_customer.id} = customer_id") -- Posted via http://www.ruby-forum.com/.