Kevin
Kevin

Reputation: 561

Rails 3.1 invalid multibyte char (UTF-8)

I'm trying to pass this simple assertion

assert_select '.price', /\€[,\d]+\.\d\d/

In the view the code for the .price class is

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

When I'm using the default <%= number_to_currency(product.price) %> everything's just fine. When I switch to the Euro it just wont work.

This is the error message:

/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/

I suppose the way I'm writing this assert_select is wrong. Could someone enlighten me?

Thank you for your time.

Upvotes: 2

Views: 1227

Answers (1)

Julik
Julik

Reputation: 7856

If you remove the escape slash from the Euro sign this regexp will compile properly and work.

Upvotes: 2

Related Questions