Создание тегов без учета регистра - PullRequest
0 голосов
/ 17 июля 2011

У меня есть модель Tag, которая

has validates_uniqueness_of :name, :case_sensitive => false

и тогда у меня есть before_filter который создает эти теги для поста

Tag.find_or_create_by_name(name)

Когда я создаю сообщение и затем присваиваю тег «Игрушка», он успешно его создает, тогда я создаю новое сообщение, добавляю тег «игрушка» и получаю это Validation failed: Name has already been taken. Как сделать так, чтобы «Игрушка» и «Игрушка» оставались одним и тем же тегом?

1 Ответ

3 голосов
/ 18 июля 2011

Сохраните все теги в нижнем регистре и найдите теги в нижнем регистре

Tag.find_or_or_create_by_name(name.downcase)

Чтобы найти его в любом случае:

Tag.where("LOWER(name) = ?", name.downcase)
...