Имам един прост и конкретен въпрос :
например имам SomeTable.find(:all, :conditions => {:name => "some
string"}) .
Искам да направа case insensitive find за "some string" , като да ми
връща резултати за name без да взима предвид регистъра на знаците .
Поздрави,
Емил
--
Това писмо идва от пощенския списък „Ruby on Rails: България“.
За да се отпишете: ruby-on-rails-bul...@googlegroups.com
Останалите екстри: http://groups.google.com/group/ruby-on-rails-bulgaria?hl=bg
Ако пък си с PostgreSQL (или каквото и да е друго), то :conditions => ['lower(name) = lower(?)', 'some string'] ти работа. Ако имаш нужда от индекс става една идея по-сложно, но не мисля, че това ти е случая.
Ами да ровнах, проблема е там че: "Низ на Български or String in
English".mb_chars.downcase.to_s ,
ако е само "Низ на Български" ще работи но ако е "String in English"
няма да работи , а не се знае какво ще дойде .
И затова реших на find да оставя тази задача, но сега сещам че може
да направя една проверка с is_mb_chars? ако има такова животно .
Отивам да видя в документацията на ActiveSupport .
Мерси за помощта и съветите поздрави :)
On Jan 13, 10:56 pm, Sava Chankov <sava.chan...@gmail.com> wrote:
> 2010/1/13 Stefan Kanev <stefan.ka...@gmail.com>
>
>
>
> > Ако пък си с PostgreSQL (или каквото и да е друго), то :conditions =>
> > ['lower(name) = lower(?)', 'some string'] ти работа. Ако имаш нужда от
> > индекс става една идея по-сложно, но не мисля, че това ти е случая.
>
> PostgreSQL поддържа функционални индекси като
> lower(name)<http://www.postgresql.org/docs/8.0/interactive/indexes-expressional.html>от
> десетина години насам.
http://dev.mysql.com/doc/refman/5.0/en/case-sensitivity.html
Иначе решението на Стефан ми се вижда най-доборо, което може да се
направи. Особенно с ruby 1.8 не бих разчитал на downcase за unicode
низове.
--Вальо
2010/1/14 Stefan Kanev <stefan...@gmail.com>:
Иначе и на мене ми се стори странно в началото , понеже ползвам
utf8_general_ci, което означава че сам mysql трябва да си прави case
insensitive .
Грешката ми беше че не оставих от началото mysql сам да си свърши
работата аз започнах да мисля как да ги изравнявам .
Благодаря за помощта :)
On Jan 14, 11:51 am, Stefan Kanev <stefan.ka...@gmail.com> wrote:
> Само от любопитство, пробва ли да оставиш базата данни да ти сравни
> стринговете, вместо да правиш излишни неща в Ruby?
>
> 2010/1/14 marashl...@gmail.com <marashl...@gmail.com>