How does one properly get find_all to grab the data from the DB table ordered by a specific column? For example: @anglers = Angler.find_all This code gets all the angler records and they are sorted in order of the id field which is of course set as a primary key in the DB (mysql). I''d really like to pull the data from the DB sorted in the order of another field, for example ''score'' so I attempted to code: @anglers = Angler.find_all nil, ''score'' OR @anglers = Angler.find_all(nil, ''score'') Neither worked and the data continues to be ordered by id. Do I need to go and make the ''score'' coumn a secondary key in the DB for this to work? Or should RoR be doing this on its own? Or is there something else I''m missing. Thanks in advance. -- Posted via http://www.ruby-forum.com/.
Hi -- On Sun, 9 Jul 2006, Mike Kogan wrote:> How does one properly get find_all to grab the data from the DB table > ordered by a specific column? > > For example: > > @anglers = Angler.find_all > > This code gets all the angler records and they are sorted in order of > the id field which is of course set as a primary key in the DB (mysql). > > I''d really like to pull the data from the DB sorted in the order of > another field, for example ''score'' so I attempted to code: > > @anglers = Angler.find_all nil, ''score'' > OR > @anglers = Angler.find_all(nil, ''score'') > > Neither worked and the data continues to be ordered by id. Do I need to > go and make the ''score'' coumn a secondary key in the DB for this to > work? Or should RoR be doing this on its own? Or is there something else > I''m missing.find_all is actually deprecated in favor of find(:all), to which you can append a SQL fragment for the order, like this: Angler.find(:all, :order => "score ASC") David -- "To fully realize the potential of Rails, it''s crucial that you take the time to fully understand Ruby--and with "Ruby for Rails" David has provided just what you need to help you achieve that goal." -- DAVID HEINEMEIER HANSSON, in the foreword to RUBY FOR RAILS. Complete foreword & sample chapters at http://www.manning.com/black!
Thanks David I tried that and it is still dragging the data out in order of id not the score field (which is int(5)). I am on MySQL 4.X. Dadgumit! -- Posted via http://www.ruby-forum.com/.
Hi Mike, Mike Kogan wrote:> How does one properly get find_all to grab the data from the DB table > ordered by a specific column? > > For example: > > @anglers = Angler.find_allAccording to the documentation at http://api.rubyonrails.org/ , the basics are: @anglers = Angler.find(:all, :order => "column_name DESC") The default is ascending. hth, Bill
Thanks guys I had another statement that was hosing things in the method I did not show. I am now getting sorted ascending -- of course, I need descending. Is it easy as changing the SQL query? -- Posted via http://www.ruby-forum.com/.
Never mind - DESC! LOL this is getting better every night. Thank you for your guidance ;) -- Posted via http://www.ruby-forum.com/.
Mike, you might want to take a look at the documentation at http://api.rubyonrails.org for questions like these. It''s really quite good. / CJ On 7/9/06, Mike Kogan <mike@kogan.org> wrote:> Never mind - DESC! LOL this is getting better every night. Thank you for > your guidance ;) > > -- > Posted via http://www.ruby-forum.com/. > _______________________________________________ > Rails mailing list > Rails@lists.rubyonrails.org > http://lists.rubyonrails.org/mailman/listinfo/rails >
CJ I have been using the API, although I find it''s syntax difficult to decipher at times -- probably just the learning curve of how Ruby is specified. What is the reason for the different syntax styles, aka Entry.find_all vs Entry.find(:all)? Why the 2 different styles and where do they come from? -- Posted via http://www.ruby-forum.com/.
As far as I know, find_all is an old api that has been deprecated, find(:all) is the recommended way. -Jonathan. On 7/10/06, Mike Kogan <mike@kogan.org> wrote:> CJ I have been using the API, although I find it''s syntax difficult to > decipher at times -- probably just the learning curve of how Ruby is > specified. > > What is the reason for the different syntax styles, aka Entry.find_all > vs Entry.find(:all)? > > Why the 2 different styles and where do they come from? > > -- > Posted via http://www.ruby-forum.com/. > _______________________________________________ > Rails mailing list > Rails@lists.rubyonrails.org > http://lists.rubyonrails.org/mailman/listinfo/rails >