我正在尝试验证新用户的姓名和姓氏。我想只匹配字母和空格。
所以我在模型中加入了以下代码:
name_regex = surname_regex = /[a-zA-Z’ ]+/i
validates :name, :on => :create,
:format => { :with => name_regex }
validates :surname, :on => :create,
:format => { :with => surname_regex }
当我在浏览器中浏览我的RoR应用程序时,出现此错误:
<DIRECTORY of my RoR APPLICATION>/model.rb:35: invalid multibyte char (US-ASCII)
<DIRECTORY of my RoR APPLICATION>/model.rb:35: invalid multibyte char (US-ASCII)
<DIRECTORY of my RoR APPLICATION>/model.rb:35: syntax error, unexpected $end, expecting keyword_end
name_regex = surname_regex = /[a-zA-Z’ ]+/i
^
有什么问题?
答案 0 :(得分:7)
使用UTF-8和Ruby 1.9时,您需要通过添加第一行来为文件添加前缀:
# encoding: UTF-8
这是解析器的一个提示,以确保不使用错误的字符集来解释事物。 Ruby 1.8对此非常松懈,可能会带来麻烦。
您在那里使用的刻度字符不是常规撇号'
,而是在7位US ASCII字符集中找不到的智能引用’
。