什么会导致它在开发中起作用,而不是生产?
我有User.find_by(["name LIKE ?", "DAN DOUGHTY"])
它在开发服务器上找到名为"Dan Doughty"
的用户,但在Heroku上的Production中找不到相同的用户。在这两种环境中都有一个具有该名称的用户。
答案 0 :(得分:2)
请注意,LIKE
区分大小写,并且它将与确切的字符串
所以要么将名字双面打包
User.find_by(["lower(name) LIKE ?", "DAN DOUGHTY".downcase])
或者去ILIKE
User.find_by(["name ILIKE ?", "DAN DOUGHTY"])
答案 1 :(得分:1)
我想我只是想用更可靠的东西。我选择使用Arel来解决这个问题。
不幸的是,他们只是有点埋葬而且有点无证。因此传统观点认为Rails不会对不区分大小写的发现做出反应。但事实上确实如此:
不区分大小写:
t = User.arel_table
User.find_by(t[:name].matches('DAN DOUGHTY'))