Henrik
Tack för hjälpen - skall följa dina råd. Då tror jag att problemen
löser sig
Jag har ett annat problem som jag länge sökt svar på men inte kunnat
hitta något.
Det gäller inte ÖÄÅ men best practise så det platsar väl egentligen
inte i denna lista, men ändock - det kan ju vara av visst allmänt
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 gäller en plats kan anropas från en plats-lista
eller från ett plats-autocomplet fält, etc i platscontroller viewn men
även från en länk i en annan view, eller från ett redirect i en annan
action. De olika anropen har olika indata och kräver delvis olika
logik och implementation
Resultatet är tjocka controller actions med många villkorssatser -
inte vidare snyggt!
Men hur löser 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 lätt hämnar i tex 5 olika plats-controllers
- flera special-actions men det bryter mot RESTs principer
- designa om så att problemet inte uppstår, men det bryter mot en
Användarorienterad design som jag tillämpar där man utgår ifrån
användarnas uppgifter och situation
Så min fråga är!
Vad är best practise när det gäller detta problem?
Tacksam för all hjälp
____________________________________________
Hans Marmolin
St: Larsgatan 50, 58224 Linköping, Sweden
Phone: +46708371202
13 feb 2011 kl. 11.56 skrev Henrik Nyh:
2011/2/13 Hans Marmolin <[email protected]>:
Mina problem är
1. När jag använder autocomplete och gör
search=request.raw_post.downcase.split('=').second.split('&').first
för att ta ut söksträngen så får jag '%c3%b6' liknande tecken för ÅÄÖ
Detta åtgärdar jag med följande fix
def to_uf8(search)
#- fix to handle utf8 problem when inputting search chrs
search.gsub!('%c3%b6','ö')
Vilket inte verkar vara rätt väg att gå !!!
Nej, definitivt inte. raw_post är väl URL-encodad, d.v.s. alla
"konstiga" tecken skrivs med procenttecken och siffror.
Kan du inte använda params['search'] eller liknande för det här? Det
värde du vill åt finns förmodligen redan omgjort till UTF-8
någonstans. raw_post verkar onödigt lågnivå.
2. När jag söker efter matchningar enligt
['LOWER(name) LIKE ?', '%' + search.downcase + '%' ]
ger search med AÅÄ samma resultat, dvs Å i autocompletefältet
matchar alla
Jag brukar göra typ
['name COLLATE utf8_swedish_ci LIKE ?', '%' + search + '%' ]
Då blir sökningen case-insensitive (även med åäö/ÅÄÖ) och skiljer på
t.ex. "a" och "å" men inte på t.ex. "a" och "á".
3. Nu vet jag inte om det finns samma problem alla gånger jag
använder find
med ÅÄÖ i villkorssatsen ?
I så fall är jag illa ute !
Skriv tester för detta så märker du.
--
You received this message because you are subscribed to the Google
Groups "rails-i18n" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to [email protected]
.
For more options, visit this group at http://groups.google.com/group/rails-i18n?hl=en
.
--
You received this message because you are subscribed to the Google Groups
"rails-i18n" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/rails-i18n?hl=en.