Ruby on rails Rails唯一性=>;真实编码问题

Ruby on rails Rails唯一性=>;真实编码问题,ruby-on-rails,ruby,ruby-on-rails-3,Ruby On Rails,Ruby,Ruby On Rails 3,在rails 3.0.12(Ruby 1.8.7)中使用UTF字符时,我遇到了rails唯一性验证器的问题 这是我的小测试: 正确: name = "dave" count = User.where(:name => name).count u = User.new(:name => name, :gender => "Male") puts "Current: #{count} / Valid: #{u.valid?} / Errors: #{u.errors.to_a.to

在rails 3.0.12(Ruby 1.8.7)中使用UTF字符时,我遇到了rails唯一性验证器的问题

这是我的小测试:

正确:

name = "dave"
count = User.where(:name => name).count
u = User.new(:name => name, :gender => "Male")
puts "Current: #{count} / Valid: #{u.valid?} / Errors: #{u.errors.to_a.to_sentence}"
输出:当前:1/有效:错误/错误:已获取名称

SQL (0.2ms)  SELECT COUNT(*) FROM `users` WHERE `users`.`name` = 'dave'
SQL (0.1ms)  SELECT 1 FROM `users` WHERE (`users`.`name` = BINARY 'dave') LIMIT 1
不正确:

name = "angélique"
count = User.where(:name => name).count
u = User.new(:name => name, :gender => "Male")
puts "Current: #{count} / Valid: #{u.valid?} / Errors: #{u.errors.to_a.to_sentence}"
输出:当前:3/有效:真/错误:

SQL (0.1ms)  SELECT COUNT(*) FROM `users` WHERE `users`.`name` = 'angélique'
SQL (0.1ms)  SELECT 1 FROM `users` WHERE (`users`.`name` = BINARY 'angélique') LIMIT 1
where子句似乎使用了正确的编码并找到了结果,但状态验证器上的检查没有


有什么办法可以解决这个问题吗?

我认为您的应用程序可能正在使用UTF-8,但您的DB没有:


该指南包含了在本页前面针对MySQL和PostgreSQL执行此操作的示例。

我认为您的应用程序可能正在使用UTF-8,但您的DB没有:


该指南包含了在本页前面针对MySQL和PostgreSQL执行此操作的示例。

不应该是唯一性,而应该是存在性?对不起,我是说唯一性而不是存在性,不应该是唯一性?对不起,我是说唯一性