Forum: Rails France =?iso-8859-1?q?majuscule_erron=E9?=

Announcement (2017-05-07): www.ruby-forum.com is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see rubyonrails.org/community and ruby-lang.org/en/community for other Rails- und Ruby-related community platforms.
D0b13323816b57eefe2b60806123dc78?d=identicon&s=25 Emmanuel Vaïsse (evaisse)
on 2006-05-09 09:23
(Received via mailing list)
Bonjour, j'avais précedement écris à propos de la méthode upcase de
ruby, qui ne met pas les caractères accentués en majuscules.
sur ce on m'a proposé un :
chaine.upcase.tr('é','�')
ce qui à priori devrait fonctionner (d'après la doc). Ben en fait non,
chez moi ça marche pas. Rails refuse obstinement de transformer mes
caractères accentués ! via tr ou même tr_s
91eb330fb36d1e03c856574dfb77d2bc?d=identicon&s=25 Thibaut Barrère (Guest)
on 2006-05-09 09:38
(Received via mailing list)
Bonjour

pour expérimenter, rien de tel qu'un petit test unitaire:

upcase.rb

require 'test/unit'
class Tests < Test::Unit::TestCase
  def test_upcase
    assert_equal "�L�PHANT", "éléphant".upcase.tr("é","�")
  end
end

lancement

C:\dev\scripts\string>upcase.rb
Loaded suite C:/dev/scripts/string/upcase
Started
.
Finished in 0.0 seconds.

1 tests, 1 assertions, 0 failures, 0 errors


Ca marche bien.


Je suppose que tu fais

chaine.upcase.tr('é","�")

et non pas

chaine = chaine.upcase.tr('é","�")

ce qui explique peut être cela.

si tu veux modifier le receveur (chaine), utilise chaine.upcase!.tr!
('é","�")

a+

Thibaut
91eb330fb36d1e03c856574dfb77d2bc?d=identicon&s=25 Thibaut Barrère (Guest)
on 2006-05-09 09:41
(Received via mailing list)
ce qui donne pour terminer:

require 'test/unit'

class Tests < Test::Unit::TestCase

  def test_upcase
    assert_equal "�L�PHANT", "éléphant".upcase.tr("é","�")
  end

  def test_destructive_upcase
    chaine = "éléphant"
    chaine.upcase!.tr!("é","�")
    assert_equal "Ã?LÃ?PHANT", chaine
  end

end

=> 2 tests, 2 assertions, 0 failures, 0 errors
F76ab0892ab6e57f269278150a9aba4f?d=identicon&s=25 Emmanuel VAÏSSE (Guest)
on 2006-05-09 10:51
(Received via mailing list)
pour :
<%= bdel_pupil.nom.upcase!.tr!('é', '�') %>

j'obtient ::
   NoMethodError in   Bdel#list      Showing app/views/bdel/list.rhtml
where line #14 raised:

You have a nil object when you didn't expect it!
The error occured while evaluating nil.tr!
   Extracted source (around line #14):

11:   <p>
12:     <em>(<%= bdel_pupil.age %> ans) - </em>
13:     <span class="options_edition">
14:     <span class="sexe_<%= bdel_pupil.sexe %>"><%=
bdel_pupil.nom.upcase!.tr!('&#65533;', '&#65533;') %> <%=
bdel_pupil.prenom %></span>
15:       <%= link_to 'Voir', :action => 'show', :id => bdel_pupil %> |
16:
17:       <%= link_to 'Editer', :action => 'edit', :id => bdel_pupil %>
|

       RAILS_ROOT: ./script/../config/..




Thibaut Barrère <thibaut.barrere@gmail.com> a écrit : ce qui donne pour
terminer:

require 'test/unit'

class Tests < Test::Unit::TestCase

  def test_upcase
    assert_equal "�L�PHANT", "éléphant".upcase.tr("é","�")
  end

  def test_destructive_upcase
    chaine = "éléphant"
    chaine.upcase!.tr!("é","�")
    assert_equal "Ã?LÃ?PHANT", chaine
  end

end

=> 2 tests, 2 assertions, 0 failures, 0 errors



 _______________________________________________
Railsfrance mailing list
Railsfrance@rubyonrails.fr
http://lists.rubyonrails.fr/mailman/listinfo/railsfrance
64cefc5969da4ae702d86c9f26cb8733?d=identicon&s=25 philippe lachaise (Guest)
on 2006-05-09 10:57
(Received via mailing list)
J'ai eu les pires problèmes avec les caractères accentués avant de
m'apercevoir que mon source n'était pas sauvegardé en UTF-8.

Après avoir indiqué à Radrails de m'enregistrer tout en UTF-8 je n'ai
plus
eu de problèmes.

(s'assurer aussi que ruby s'attend à trouver de l'UTF-8)
91eb330fb36d1e03c856574dfb77d2bc?d=identicon&s=25 Thibaut Barrère (Guest)
on 2006-05-09 11:06
(Received via mailing list)
bdel_pupil.nom.upcase!.tr!


Sur ton exemple précis, il faut utiliser <%=
bdel_pupil.nom.upcase.tr(....
%>              (sans les points d'exclamation)

Je te recommande d'aller regarder la doc de upcase!/upcase et tr/tr!
pour
que tu comprennes bien les différences entre ces deux forms.
F76ab0892ab6e57f269278150a9aba4f?d=identicon&s=25 Emmanuel VAÏSSE (Guest)
on 2006-05-09 11:15
(Received via mailing list)
j'ai effectivement tenté sans les accents (j'ai même commencé par là...)
cependant, même en essayant de changer l'encodage du fichier... je
n'arrive pas à transformer mes caractères.

Thibaut Barrère <thibaut.barrere@gmail.com> a écrit :

bdel_pupil.nom.upcase!.tr!

Sur ton exemple précis, il faut utiliser <%=
bdel_pupil.nom.upcase.tr(.... %>              (sans les points
d'exclamation)

Je te recommande d'aller regarder la doc de upcase!/upcase et tr/tr!
pour que tu comprennes bien les différences entre ces deux forms.

 _______________________________________________
Railsfrance mailing list
Railsfrance@rubyonrails.fr
http://lists.rubyonrails.fr/mailman/listinfo/railsfrance
This topic is locked and can not be replied to.