0

奇妙なエンコーディングの問題があるか、間違った方法で単純化しています。たぶん、誰かが何が起こるか知っています。情報: Ruby on Rails は初めてです!

風景名の配列があり、それらには「äüöéèà...」のような特殊文字が含まれています。私のフォームでは、ユーザーがこれらの風景の複数のアイテムを選択できるようにしたいと考えています。そこで、すべてのランドスケープ名を含む select_tag から始めました。

<%= select_tag 'model[landscapes][]', options_for_select(AVAILABLE_LANDSCAPES, @landscapes_selected), { :multiple => true, :size =>5, :id => "model_landscapes" } %>

私のモデルでは、これらの名前をデータベースに保存すると、すべて正常に動作します。私はすでに、ランドスケープ文字列にこれらの特殊文字を含む大きなデータベースを持っています。既存のランドスケープ エントリは、「ländscape1、lândscape2、blalilü」として指定されます。データベースからのデータの保存または取得に問題はありません。mysql データベースを備えたローカル マシンでは、これで問題なく動作します。しかし、heroku でアプリケーションを実行すると、エンコードの問題が発生します。「â」のような文字で文字列を保存すると、「\xC3\xA2」で保存されます。

4

1 に答える 1

1

Heroku でアプリを実行しているときにのみこの問題が発生する理由がわかりません。

しかし、これは私にとってはうまくいきます:

私の間違いは、選択した風景をデータベースに文字列として保存したことです!

serialize :landscapes

ランドスケープを配列として保存およびロードすると、エンコードの問題はありません!!!

于 2012-08-26T16:09:05.377 に答える