Без учета регистра find_or_create_by_wh независимо

Я хочу быть в состоянии сделатьArtist.case_insensitive_find_or_create_by_name(artist_name)[1] (и он работает как на 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), но это кажется гораздо сложнее реализовать

Ответы на вопрос(4)

Ваш ответ на вопрос