I am new in ruby.I want to know how sorting can be done in ruby based on some fields like customer name,location etc.what i meant is i have to sort the table based on some fields.how can i.?Can anybody help me. --~--~---------~--~----~------------~-------~--~----~ 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 rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---
On Jun 30, 7:23 am, Seb <ebs...-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote:> I am new in ruby.I want to know how sorting can be done in ruby based > on some fields like customer name,location etc.what i meant is i have > to sort the table based on some fields.how can i.?Can anybody help me.I''ll assume you''re asking about sorting models in Rails? Of course you can, and I''ll give you an example. (But good etiquette on this list (and any other) is to give more details about what you''re doing, and what you''ve tried so far, so that it''s evident you''ve tried something first. Please think about that for next time.) In any event, here''s how you typically select all your Customers sorted by name (I''m assuming you have a model named ''Customer'' with an attribute called ''name''): Customer.find :all, :order => :name # orders by name Also, if you haven''t already, I''d suggest you start with a good Rails primer like Agile Web Development with Rails, or look for the highest- rated Rails books on Amazon. Once you spend a little time with the basics, I think you''ll really enjoy using Rails. Jeff www.softiesonrails.com www.purpleworkshops.com --~--~---------~--~----~------------~-------~--~----~ 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 rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk-unsubscribe@googlegroups.com For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---
Note Jeff''s way is better, sometimes you will need to use this way as well: @collection = Model.find(:all) (or whatever) @collection2 = Model.find(:all) or whatever @collection = [@collection, @collection2].flatten @collection.uniq! #which removes duplicates using the @collection array @collection.sort! {|a, b| a.name <=> b.name} This is helpful when you are making a larger collection out of two smaller ones and couldn''t get the correct .find statement. But go with Jeff''s way if at all possible. --~--~---------~--~----~------------~-------~--~----~ 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 rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---
.now i have another problem .i want to sort my table based on customer name in my project listing.my customer name is in customer table not in my project table.Im my project table i have customer_id .now i''m only able to sort it based on customer_id.but i want to sort based on customer name. in my index file i hav <%= link_to "Customer" , :action => ''sort'', :identity => ''3'' in my controller i hav def sort id = params[:identity] if id == ''1'' @projects = Project.find :all, :order => :customer_id its working fine.but i want to sort it based on custmer name.can anybody help me. --~--~---------~--~----~------------~-------~--~----~ 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 rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---
@projects = Project.find :all, :order => "customers.name", :include => :customer the include will make this a "eager loading", where projects & customers are joined Note the "customers.name" which is the table name and column name as in the database (so plural, not singular for customers) --~--~---------~--~----~------------~-------~--~----~ 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 rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---
thanx....thorsten..now its working....... --~--~---------~--~----~------------~-------~--~----~ 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 rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---
now i have another problem..i want too use some conditions with sorting..tried to add. but not working... in my index file i hav <%= link_to "Customer" , :action => ''sort'', :identity => ''3''%> in my controller i hav def sort id = params[:identity] if id == ''1'' @projects = Project.find (:all, :order => "customers.name", :include => :customer) i want to add this query.. @projects = Project.find_by_sql ["SELECT * FROM projects p, memberships m WHERE p.id = m.project_id AND m.user_id =?", mem_id] along with the previuos sorting..That''s i want to display the fields which should satisfy this condition along with sorting ..how can i? --~--~---------~--~----~------------~-------~--~----~ 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 rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---
can you explain it a bit more... --~--~---------~--~----~------------~-------~--~----~ 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 rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---