#find the most recent news item for a specific locale
def self.find_most_recent_news_for_locale
first(:include => :news_item_detail,:conditions => ["news_items.created_at= ? AND news_item_details.locale = ?", maximum(:created_at), I18n.locale])
end
The Models
class NewsItem < ActiveRecord::Base
has_one :news_item_detail
end
class NewsItemDetail < ActiveRecord::Base
belongs_to :news_item
end
In Rails 3, you should use the where
method for creating conditions:
def self.find_most_recent_news_for_locale
where("news_items.created_at = ? AND news_item_details.locale = ?",
maximum(:created_at),
I18n.locale).includes(:news_item_details).first
end
You might want to watch episode #202 of Railscasts as a quick tutorial.