I think that's you could use the counter_cache feature:
class AddReplyCount < ActiveRecord::Migration def self.up add_column :topics, :replies_count, :integer, :default => 0 Project.reset_column_information Topic.find(:all).each do |t| t.update_attribute(:replies_count, t.replies.length) end end def self.down remove_column :topics, :replies_count end end class Topic < AR has_many :replies, :order => 'replies_count ASC' ... end class Reply < AR belongs_to :topic, :counter_cache => true ... end El mié, 21-04-2010 a las 04:10 -0700, DanC escribió: > Hi, > > I have a topic model which has_many replies. > > On my topic index page I would like to be able to sort the topics by > the number of replies. > > In my topic model I have defined > > Topic.rb > ... > has_many :replies > .... > def total_replies > replies.count > end > .... > > And in my controller I have tried > > @topics = Topic.find(:all, :conditions => ["forum_id = ?", > @forum.id], :order => "total_replies DESC") > > but I get the error Mcolumn "total_replies" does not exist > > I know the column doesn't exist, but the question is, how can I get > the 'total_replies' to behave as a column. > > Thanks, > > Dan > -- Juan José Vidal Agustín ATICA - Sección de Telemática Universidad de Murcia Tlf: +34 868888742 Fax: +34 868888337 juanj...@um.es -- 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-t...@googlegroups.com. To unsubscribe from this group, send email to rubyonrails-talk+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.