2
私はPost.find_by_slug('some-slug', :case_sensitive => false)
、Post.find_by_title('some title', :case_sensitive => false)
をやりたいと思っています。重複コードなしでfind_by_xメソッドにcase_sensitivityオプションを追加する
私は、次のアプローチを試してみたが、重複したロジックの多くがあります:
def self.find_by_name(name, options = {})
conditions = options[:case_sensitive] == false ? ['UPPER(name) = UPPER(?)', name] : ['name = ?', name]
first(:conditions => conditions)
end
def self.find_by_slug(slug, options = {})
conditions = options[:case_sensitive] == false ? ['UPPER(slug) = UPPER(?)', slug] : ['slug = ?', slug]
first(:conditions => conditions)
end
にはどうすれば重複コードなしすべてのfind_by_x
方法について:case_sensitive => false
オプションを得ることができますか?