0

RailsアプリにLevelレコードがあり、アクセント付きの文字を含めることができる1つのフィールド(名前)が含まれています。

1.9.3p125 :008 > Level.all
 Level Load (0.4ms)  SELECT "levels".* FROM "levels" 
 => [#<Level id: 1, name: "Débutant">, #<Level id: 2, name: "Intermédiaire">, #<Level id: 3, name: "Avancé">]  

しかし、私が照会すると、次のようになります。

1.9.3p125 :011 > Level.where("name = ?", "D\U+FFC3\U+FFA9butant").first
 Level Load (0.3ms)  SELECT "levels".* FROM "levels" WHERE (name = 'Dbutant') LIMIT 1
 => nil 

asを直接。に置き換えてLevel.where("name = ?", "Débutant").first使用すると入力できません。しかし、私のコントローラーでは、結果は同じであり、強調された文字列を照会することはできません。 rails cé\U+FFC3\U+FFA9

私は現在、テストにsqliteを使用しています。

4

2 に答える 2

1

コンソールの問題は、readline ライブラリに関連しています。適切な readline サポートを備えた Ruby をインストールする必要があります。

rvm を使用して Ruby をインストールした場合、この問題を解決する最も簡単な方法は次のとおりです。

rvm pkg install readline

次に (1.9.3 を使用していると仮定します。それ以外の場合は、Ruby のバージョンに置き換えてください):

rvm reinstall 1.9.3 --with-readline-dir=$rvm_path/usr

その後、Rails コンソールでéと入力すると、再び機能するはずです...

あなたの他の問題(コントローラー内)について:作成中のSQLクエリを含むログの抜粋を投稿していただけますか?

于 2012-08-07T09:17:44.883 に答える
0

この文字列を配置します

#encoding: utf-8

Rubyファイルの最初の行に。

于 2012-08-07T07:38:47.190 に答える