Ruby on rails Rails唯一性=>;真实编码问题
在rails 3.0.12(Ruby 1.8.7)中使用UTF字符时,我遇到了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
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执行此操作的示例。不应该是唯一性,而应该是存在性?对不起,我是说唯一性而不是存在性,不应该是唯一性?对不起,我是说唯一性