[1]を実行できるようにしたいArtist.case_insensitive_find_or_create_by_name(artist_name)
(そして sqlite と postgreSQL の両方で動作させる)
これを達成するための最良の方法は何ですか? 現在、Artist
クラスにメソッドを直接追加しているだけです(特に、この機能を別のクラスで使用したい場合は、ちょっと醜いですが、何でも):
def self.case_insensitive_find_or_create_by_name(name)
first(:conditions => ['UPPER(name) = UPPER(?)', name]) || create(:name => name)
end
[1]: 理想的には ですがArtist.find_or_create_by_name(artist_name, :case_sensitive => false)
、これを実装するのはかなり難しいようです。