2012-10-01 5 views
0

Je développe une application avec mysql et sqlserver. sqlserver est utilisé pour se connecter à une table héritée.rails et encodage sqlserver

ici est ma définition

development: 
    adapter: mysql2 
    encoding: utf8 
    reconnect: false 
    database: spvalores_development 
    username: secret 
    password: secret 
    pool: 5 
    host: 192.168.100.35 
    socket: mysql 
    port: 3306 

sql_server_db: 
    adapter: sqlserver 
    database: SPPokerManager 
    dsn: DesaSqlServer 
    mode: odbc 
    username: sa 
    password: master 
    encoding: utf8 

les gemmes que j'utilise:

gem 'activerecord-sqlserver-adapter' 
gem 'ruby-odbc' 

ceci est mon modèle

class Client < ActiveRecord::Base 
    self.table_name = "dbo.LOB_CLIENTE" 
    self.primary_keys = :CASINO_ID, :CLIENTE_ID 
    establish_connection :sql_server_db 

    attr_accessible :CASINO_ID, :CLIENTE_ID, :CDNI, :CAPELLIDO, :CNOMBRES,:TIPODOCUMENTO_ID, :CNICKNAME, :CDIRECCION, :CTELEFONO, :CCELULAR, :CEMAIL, :COBSERVACIONES, :CLIENTEPERFIL_ID 
    attr_accessible :DFECHAINGRESO, :BIDENTIFICADO, :BACEPTAENVIOSMS, :IFOTO, :COLATIPOPREFERIDA_ID 
    attr_accessible :BACTIVO, :CNROJUGADOR, :CSEXO, :DFECHANACIMIENTO, :NACIONALIDAD_ID, :CEMAIL2, :CPATROCINADOR, :CPAISRESIDENCIA, :CPROVINCIARESIDENCIA, :CCIUDADRESIDENCIA 
    attr_accessible :DFECHAHORA_CESIONIMAGEN, :BFIRMA, :BJUGADORFRECUENTE, :DFECHAACTUALIZACION 

    def as_json(options={}) 
    nick = self.CNICKNAME.force_encoding("ISO-8859-1").encode("UTF-8") 
    name = self.CNOMBRES.force_encoding("ISO-8859-1").encode("UTF-8") unless self.CNOMBRES.nil? 
    surname = self.CAPELLIDO.force_encoding("ISO-8859-1").encode("UTF-8") unless self.CAPELLIDO.nil? 
    {:CLIENTE_ID => self.CLIENTE_ID ,:CNICKNAME => nick ,:CAPELLIDO => surname ,:CNOMBRES => name, :CDNI => self.CDNI, :TIPODOCUMENTO_ID => self.TIPODOCUMENTO_ID } 
    end 

end 

je reçois toujours des erreurs comme ceci:

incompatible character encodings: ASCII-8BIT and UTF-8 

la seule façon de faire quelque chose est résolu comme celui-ci

modelinstance.field.force_encoding("ISO-8859-1").encode("UTF-8") 

Il y a beaucoup de champ sur cette table. A côté, bien sûr, je devrai interroger d'autres tables comme celle-ci.

regardant dans les propriétés de la base de la collation est Modern_Spanish_CI_AS

Comment puis-je configurer rails pour afficher et enregistrer la propriété dans le classement Modern_Spanish_CI_AS

Merci à l'avance, l'espoir d'être clair

Répondre