Firstly, I've asked a similar question before[*]. I didn't get any answers back then, maybe now I have better luck
Let's say I have models like this class Article < ActiveRecord::Base has_many :versions end class Version < ActiveRecord::Base belongs_to :article default_scope order('updated_at') scope :published, where(:state => 'published') validates :state, :inclusion => { :in => ['draft', 'published'] } validates :title, :content, :presence => true end It's easy to find the latest version for an article, just article.versions.last The same for published versions isn't much more complicated articles.versions.published.last Of course, I'm not only dealing with single articles Article.all Then, in a articles/_article.html.erb <%= article.version.last.title %> Oops! That triggers another database access for each article. Now, I know how to deal with this in SQL, with either a correlated sub- select or an even more complicated left outer join. I've forced the first technique into ActiveRecord wrapping, which isn't fun. Far from being any help. ARec gets in the way. I've dabbled with ARel which was even worse, but may be due to my inexperience with it. Currently, the nicest solution I can think of is to accept the SQL and go native: i.e., define a view in the database and a read-only model on top of it. I appreciate any suggestions how to do this *elegantly* in ARec. Michael [*] 2010-06-20, ActiveRecord and ARel: correlated subqueries? -- Michael Schuerig mailto:mich...@schuerig.de http://www.schuerig.de/michael/ -- 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.