Hej
Jag har en rails applikation som anvnder MYSQL och har definierat
tabellerna enligt
create_table :places, :force => true, :force => true, :options =>
‘ENGINE=InnoDB DEFAULT CHARSET=utf8’ do |table|
och html filen enligt
och databsen i configurationsflen enligt
development:
adapter: mysql
encoding: utf8
database: Disweb_1-development
username: root
password:
host: localhost
pool: 5
timeout: 5000
Mina problem r
Nr jag anvnder autocomplete och gr
search=request.raw_post.downcase.split(’=’).second.split(’&’).first
fr att ta ut skstrngen s fr jag ‘%c3%b6’ liknande tecken fr
Detta tgrdar jag med fljande fix
def to_uf8(search) #- fix to handle utf8 problem when inputting search chrs
search.gsub!(’%c3%b6’,’’)
search.gsub!(’%c3%a4’,’’)
search.gsub!(’%c3%a5’,’’)
search.gsub!(’%c3%96’,’’)
search.gsub!(’%c3%84’,’’)
search.gsub!(’%c3%85’,’’)
return search
end
Vilket inte verkar vara rtt vg att g !!!
Nr jag sker efter matchningar enligt
[‘LOWER(name) LIKE ?’, ‘%’ + search.downcase + ‘%’ ]
ger search med A samma resultat, dvs i autocompletefltet matchar
alla namn som har A
Nu vet jag inte om det finns samma problem alla gnger jag anvnder
find med i villkorssatsen ?
I s fall r jag illa ute !
Jag har lst att man ev kan tgrda detta med att
collation=utf8_unicode_c
men var och hur definierar man detta ?
Nr jag anvnder autocomplete och gr
search=request.raw_post.downcase.split(‘=’).second.split(‘&’).first
fr att ta ut skstrngen s fr jag ‘%c3%b6’ liknande tecken fr
Detta tgrdar jag med fljande fix
def to_uf8(search) #- fix to handle utf8 problem when inputting search chrs
search.gsub!(‘%c3%b6’,‘’)
Vilket inte verkar vara rtt vg att g !!!
Nej, definitivt inte. raw_post r vl URL-encodad, d.v.s. alla
“konstiga” tecken skrivs med procenttecken och siffror.
Kan du inte anvnda params[‘search’] eller liknande fr det hr? Det
vrde du vill t finns frmodligen redan omgjort till UTF-8
ngonstans. raw_post verkar ondigt lgniv.
Nr jag sker efter matchningar enligt
[‘LOWER(name) LIKE ?’, ‘%’ + search.downcase + ‘%’ ]
ger search med A samma resultat, dvs i autocompletefltet matchar alla
Henrik
Tack fr hjlpen - skall flja dina rd. D tror jag att problemen
lser sig
Jag har ett annat problem som jag lnge skt svar p men inte kunnat
hitta ngot.
Det gller inte men best practise s det platsar vl egentligen
inte i denna lista, men ndock - det kan ju vara av visst allmnt
intresse
Jag har ofta flera olika views som anropar samma action i en
controller med olika indata och ibland skall ox olika views renderas
tex en show action som gller en plats kan anropas frn en plats-lista
eller frn ett plats-autocomplet flt, etc i platscontroller viewn men
ven frn en lnk i en annan view, eller frn ett redirect i en annan
action. De olika anropen har olika indata och krver delvis olika
logik och implementation
Resultatet r tjocka controller actions med mnga villkorssatser -
inte vidare snyggt!
Men hur lser rman problemet ?
villkorsatser i en action men det bryter mot regeln “tunna
controllers”
flera controllers - men det bryter mot DRY d mycket av koden r
gemensam och man ltt hmnar i tex 5 olika plats-controllers
flera special-actions men det bryter mot RESTs principer
designa om s att problemet inte uppstr, men det bryter mot en
Anvndarorienterad design som jag tillmpar dr man utgr ifrn
anvndarnas uppgifter och situation
S min frga r!
Vad r best practise nr det gller detta problem?
Tacksam fr all hjlp
Hans M.
St: Larsgatan 50, 58224 Linkping, Sweden
Phone: +46708371202
Can you please post question and answer (or a summary thereof) in
English, so that the rest of the subscribers can follow the discussion?
[From looking at the code, a function such as to_utf8 below is
extremely restricted, and there is a high chance that you soon get hit
with a character that’s not in your list.]
Regards, Martin.
On 2011/02/13 19:18, Hans M. wrote:
timeout: 5000
search.gsub!('%c3%b6','')
2. Nr jag sker efter matchningar enligt
Sorry Martin
But I posted it in the wrong group and it has been moved to rails-se
For your information
One problem was that I use request.raw_post to get the search string
and that does no handle
My mistake. Did not really understad how autocomplete worked when I
forst wrote that code
The proposed solution was to use params[‘search’] instad that should
take care of that
The second problem was about how to search only fr in an
autocomplete field
and the proposed solution was to use
[‘name COLLATE utf8_swedish_ci LIKE ?’, ‘%’ + search + ‘%’ ]
as search condition
Hans M.
St: Larsgatan 50, 58224 Linkping, Sweden
Phone: +46708371202
14 feb 2011 kl. 02.14 skrev Martin J. Drst:
This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.