2016-04-25 2 views
0

私は、firebirdの既存のデータベースにcharset windows-1250でアプリケーションを作成しています。 そしてこのエンコーディングのために私は多くの問題を抱えていますが、私はそれを変更できません。イムこのように、入力オブジェクトの形と呼ばれる通知を行うときRailsはWindowsでエンコードするように入力します。

私の最大の誤差は以下のようになります。

form do |f| 
    panel Iconv.conv('windows-1250', 'utf-8', 'Opis zgłoszenia:'), 
    :class=> 'panel_dodaj_new' do 
     f.input :opis_zgloszenia, label:false 
    end 
end 


それはUTF-8でテキストを保存しようと、私はそれが窓で保存したいです-1250。
:opis_zgloszeniaをutf-8とは異なる文字セットで保存する方法を教えてください。

答えて

0

コントローラのエンコーディングを変更する方法が見つかりました。私の私は追加方法作成で

if @notification.update(notification_params) 
    @notification.opis_zgloszenia = Iconv.conv('windows-1250', 'utf-8', @notification.opis_zgloszenia) 
    if @notification.save 
     redirect_to request.url 
    end 
    end 

今、すべてはうまく動作します:

@notification.opis_zgloszenia = 
Iconv.conv('windows-1250', 'utf-8', @notification.opis_zgloszenia) 

も私は私の更新方法を変更する必要があります。

0

これは、データベース全体のデフォルトのエンコードを構成するより適切なソリューションだと思います。そうすれば、私はRailsがデータベース(ウィンドウ1250)とRailsコード/ Webページ(UTF-8)の間のエンコーディングを透過的に変換すると期待します。 database.yml設定のencoding設定を使用してこれを設定できるはずです。

したがって、次のようなものは、あなたのために働く必要があります。

development: 
    adapter: fb 
    database: db/development.fdb 
    username: SYSDBA 
    password: masterkey 
    host: localhost 
    encoding: windows-1250 
    create: true 

は、詳細はFirebird adapter documentationを参照してください。

+0

私はすでにそれを持っていますが、それでもこれは全く役に立たない。 – KacperM

関連する問題