Ответ 1
Почему при сопоставлении не просто вниз User.login.downcase
(или какая бы то ни было ваша комбинация моделей/атрибутов)? Это оставит капитализацию в DB как есть, но изменит поле только для сравнения.
Есть ли способ установить атрибут в mongoid для поиска без учета регистра?
Давайте скажем, что у кого-то есть имя пользователя: IAmGreat, и я хочу найти данные пользователей, используя их уникальное имя пользователя, не разбирая его и не меняя его на iamgreat.
Спасибо
Почему при сопоставлении не просто вниз User.login.downcase
(или какая бы то ни было ваша комбинация моделей/атрибутов)? Это оставит капитализацию в DB как есть, но изменит поле только для сравнения.
На самом деле вы можете искать регистр без учета регистра. Но вам нужно искать регулярное выражение! Вот пример, как я использую его в http://www.VersionEye.com
User.first(conditions: {email: /^#{email}$/i})
С помощью//вы начинаете и заканчиваете регулярное выражение. "I" после регулярного выражения означает, что регистр нечувствителен. "^" Означает, что элемент должен начинаться с строки поиска, а "$" означает, что элемент должен заканчиваться поисковой строкой. Это важно, если вы ищете точное соответствие.
Вы даже можете попробовать что-то вроде:
User.where(username: /#{username}/i).first
Если вы используете рельсы или мангоид, вы можете попробовать ff:
@user = User.where({:username => /.*#{name}.*/i })