Как СУХО использовать методы области, используемые в двух разных классах?

Я использую Ruby on Rails 3.2.2, и я хотел бы извлекать/объявлять связанные объекты, "указывая"/"фильтруя" значение атрибута этих связанных объектов. . То есть в настоящее время я использую следующий код:

class Article < ActiveRecord::Base
  def self.search_by_title(search)
    where('articles.title LIKE ?', "%#{search}%")
  end
end

class ArticleAssociation < ActiveRecord::Base
  def self.search_by_article_title(search)
    joins(:article).where('articles.title LIKE ?', "%#{search}%")
  end
end

В приведенном выше коде предложение where('articles.title LIKE ?', "%#{search}%")повторяется дважды и поэтому я подумал, что его можно улучшить с помощью принципа DRY: можно ли использовать методArticle.search_by_titleнепосредственно в методеArticleAssociation.search_by_article_title ?


Типичные варианты использования:

  • ArticleAssociation.search_by_article_title("Образец строки")
  • Article.search_by_title("Образец строки")
5
задан Backo 5 June 2012 в 15:25
поделиться