2011-07-31 6 views
2

.priceクラスのコードがのRails 3.1無効なマルチバイト文字(UTF-8)

<span class="price"> 
<%= number_to_currency(product.price, options = {:format => "%u%n", :unit => "&euro;"}) %> </span> 

ときです私はデフォルトの<%= number_to_currency(product.price) %>を使用しています。私がユーロに切り替えると、それはちょうどうまく動作しません。

これはエラーメッセージです:私はこのassert_selectを書いている方法が間違っていると仮定し

/Users/noapologize/.rvm/gems/ruby-1.9.2-p290/gems/activesupport-3.1.0.rc4/lib/active_support/dependencies.rb:237:in `require': /Users/noapologize/rails_projects/depot/test/functional/store_controller_test.rb:11: invalid multibyte char (UTF-8) (SyntaxError) 
/Users/noapologize/rails_projects/depot/test/functional/store_controller_test.rb:11: invalid multibyte char (UTF-8) 
/Users/noapologize/rails_projects/depot/test/functional/store_controller_test.rb:11: syntax error, unexpected $end, expecting keyword_end 
    assert_select '.price', /\€[,\d]+\.\d\d/ 

。誰かが私を啓発できますか?

ありがとうございます。

答えて

2

ユーロ記号からエスケープスラッシュを削除すると、このregexpは正しくコンパイルされ、動作します。

+0

ありがとうございました!それは今働く。 Pragmatic Bookがそれを持っているので、それは変です。理解できません。なぜそれが$のために働くのですか?それはキャラクターか何かのバイト長ですか?再度、あなたの答えとあなたの時間をありがとう。 – storedope

+0

ドルは正規表現のコマンド文字として使われるので、それをエスケープする必要があります。 Pragprogの本であなたがユーロから脱出する必要があると言われたら、彼らの本に対してバグを報告することができます;-) – Julik

関連する問題