Как мне написать эту запись поиска в рельсах 3 - PullRequest
0 голосов
/ 24 января 2012
 #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

Модели

class NewsItem < ActiveRecord::Base

has_one :news_item_detail

end

class NewsItemDetail < ActiveRecord::Base

belongs_to :news_item

end

1 Ответ

1 голос
/ 24 января 2012

В Rails 3 вы должны использовать метод where для создания условий:

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

Возможно, вы захотите посмотреть эпизод # 202 Railscasts в качестве краткого руководства.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...