Ruby on rails 3 具有特殊字符的Rspecæøå;

Ruby on rails 3 具有特殊字符的Rspecæøå;,ruby-on-rails-3,rspec,special-characters,rspec2,Ruby On Rails 3,Rspec,Special Characters,Rspec2,我正在编写一个丹麦网络应用程序,并试图验证电子邮件地址。其中包括人物æå等。这是我的rspec代码: User.create(@attr.merge(:email => 'æøå@bætter.nåw.ørg'.to_s)).should be_valid 以及我在User.rb中的验证: devise :database_authenticatable, :registerable, :recoverable, :rememberable, :trackable, :

我正在编写一个丹麦网络应用程序,并试图验证电子邮件地址。其中包括人物æå等。这是我的rspec代码:

User.create(@attr.merge(:email => 'æøå@bætter.nåw.ørg'.to_s)).should be_valid
以及我在User.rb中的验证:

devise :database_authenticatable, :registerable,
         :recoverable, :rememberable, :trackable, :validatable
email_regex = /\A[\w+\-.]+@[a-z\d\-.]+\.[a-z]+\z/i
validates :email, :presence => true, :format    => { :with => email_regex, :message => 'must be valid email' }, :uniqueness => true
这完全搞乱了rspec/autotest,该堆栈跟踪失败得很厉害:

遇到异常情况:#“æå@bætter.nåwørg”
^>回溯: /Users/houen/.rvm/gems/ruby-1.9.2-p180/gems/activesupport-3.0.7/lib/active\u support/dependencies.rb:235:in
load'
/Users/houen/.rvm/gems/ruby-1.9.2-p180/gems/activesupport-3.0.7/lib/active\u support/dependencies.rb:235:in
加载中的块' /Users/houen/.rvm/gems/ruby-1.9.2-p180/gems/activesupport-3.0.7/lib/active\u support/dependencies.rb:227:in
加载依赖项'
/Users/houen/.rvm/gems/ruby-1.9.2-p180/gems/activesupport-3.0.7/lib/active\u support/dependencies.rb:235:in
load' /Users/houen/.rvm/gems/ruby-1.9.2-p180/gems/rspec-core-2.6.4/lib/rspec/core/configuration.rb:419:in
加载规范文件中的块'
/Users/houen/.rvm/gems/ruby-1.9.2-p180/gems/rspec-core-2.6.4/lib/rspec/core/configuration.rb:419:in
map' /Users/houen/.rvm/gems/ruby-1.9.2-p180/gems/rspec-core-2.6.4/lib/rspec/core/configuration.rb:419:in
加载规格文件'
/Users/houen/.rvm/gems/ruby-1.9.2-p180/gems/rspec-core-2.6.4/lib/rspec/core/command_-line.rb:18:in
run' /Users/houen/.rvm/gems/ruby-1.9.2-p180/gems/rspec-core-2.6.4/lib/rspec/monkey/spork/test_framework/rspec.rb:5:in
运行_测试'
/Users/houen/.rvm/gems/ruby-1.9.2-p180/gems/spork-0.9.0.rc3/lib/spork/run_strategy/forking.rb:13:in
运行中的阻塞' /Users/houen/.rvm/gems/ruby-1.9.2-p180/gems/spork-0.9.0.rc3/lib/spork/forker.rb:21:in
初始化中的块'
/Users/houen/.rvm/gems/ruby-1.9.2-p180/gems/spork-0.9.0.rc3/lib/spork/forker.rb:18:in
fork' /Users/houen/.rvm/gems/ruby-1.9.2-p180/gems/spork-0.9.0.rc3/lib/spork/forker.rb:18:in
初始化'
/Users/houen/.rvm/gems/ruby-1.9.2-p180/gems/spork-0.9.0.rc3/lib/spork/run_strategy/forking.rb:9:in
new' /Users/houen/.rvm/gems/ruby-1.9.2-p180/gems/spork-0.9.0.rc3/lib/spork/run_strategy/forking.rb:9:in
run'
/Users/houen/.rvm/gems/ruby-1.9.2-p180/gems/spork-0.9.0.rc3/lib/spork/server.rb:48:in
run' /Users/houen/.rvm/rubies/ruby-1.9.2-p180/lib/ruby/1.9.1/drb/drb.rb:1558:in
执行不带\u块的\u'
/Users/houen/.rvm/rubies/ruby-1.9.2-p180/lib/ruby/1.9.1/drb/drb.rb:1518:in
perform' /Users/houen/.rvm/rubies/ruby-1.9.2-p180/lib/ruby/1.9.1/drb/drb.rb:1592:in 主循环中的块(2级)

/Users/houen/.rvm/rubies/ruby-1.9.2-p180/lib/ruby/1.9.1/drb/drb.rb:1588:in
loop' /Users/houen/.rvm/rubies/ruby-1.9.2-p180/lib/ruby/1.9.1/drb/drb.rb:1588:in 主循环中的
块“未处理的异常:[#]
/Users/houen/.rvm/gems/ruby-1.9.2-p180/gems/ZenTest-4.5.0/lib/autotest.rb:842:in
block in:未定义的方法 [#]:数组 (命名者)来自 /Users/houen/.rvm/gems/ruby-1.9.2-p180/gems/ZenTest-4.5.0/lib/autotest.rb:828:in []来自 /Users/houen/.rvm/gems/ruby-1.9.2-p180/gems/ZenTest-4.5.0/lib/autotest.rb:828:in
block in hook'来自
/Users/houen/.rvm/gems/ruby-1.9.2-p180/gems/ZenTest-4.5.0/lib/autotest.rb:828:in
每个“源” /Users/houen/.rvm/gems/ruby-1.9.2-p180/gems/ZenTest-4.5.0/lib/autotest.rb:828:in
any?”来自
/Users/houen/.rvm/gems/ruby-1.9.2-p180/gems/ZenTest-4.5.0/lib/autotest.rb:828:in
hook'来自 /Users/houen/.rvm/gems/ruby-1.9.2-p180/gems/ZenTest-4.5.0/lib/autotest.rb:344:in
运行中的救援从
/Users/houen/.rvm/gems/ruby-1.9.2-p180/gems/ZenTest-4.5.0/lib/autotest.rb:320:in
run'from /Users/houen/.rvm/gems/ruby-1.9.2-p180/gems/ZenTest-4.5.0/lib/autotest.rb:241:in
run'从
/Users/houen/.rvm/gems/ruby-1.9.2-p180/gems/ZenTest-4.5.0/bin/autotest:6:in
”来自 /Users/houen/.rvm/gems/ruby-1.9.2-p180/bin/autotest:19:in
load'from
/Users/houen/.rvm/gems/ruby-1.9.2-p180/bin/autotest:19:in
“from-e:1:in
加载”from-e:1:in

进程已完成,退出代码为1


关于如何解决这个问题,有什么建议吗?

也许可以将它添加到测试文件(带有特殊字符的文件)的顶部:


在“遇到异常”消息之后和回溯之前的异常部分是什么?你只有六个点。@Houen,检查一下。听起来他必须使用记事本++来更改测试文件的字符集,我猜是这样的。
# encoding: UTF-8