User.find_by([「名LIKEは?」Herokuの上で作業しますが、開発サーバ上で動作していない
を私はUser.find_by(["name LIKE ?", "DAN DOUGHTY"])
を持っており、それが見つかった
開発サーバー上に"Dan Doughty"
という名前のユーザーがいますが、同じユーザーをHerokuのプロダクションで見つけられません。
User.find_by([「名LIKEは?」Herokuの上で作業しますが、開発サーバ上で動作していない
を私はUser.find_by(["name LIKE ?", "DAN DOUGHTY"])
を持っており、それが見つかった
開発サーバー上に"Dan Doughty"
という名前のユーザーがいますが、同じユーザーをHerokuのプロダクションで見つけられません。
注こと、それが
ので、正確な文字列に一致いずれかになる名前の側の両方downcase
User.find_by(["lower(name) LIKE ?", "DAN DOUGHTY".downcase])
またはILIKE
User.find_by(["name ILIKE ?", "DAN DOUGHTY"])
であると思われます。これもまた良い解決策です – Doughtz
もっと信頼できるものを使用するつもりです。 Arelを使用してこの問題を解決してください。
残念ながら、ちょっと埋葬されていて、少し文書化されていません。そして、従来の知恵は、Railsは大文字小文字を区別しない検索をしないということです。大文字と小文字を区別せずに
:しかし、実際にはそれはありませんLIKE
は大文字と小文字が区別される
t = User.arel_table
User.find_by(t[:name].matches('DAN DOUGHTY'))
また、これは1週間働いていて、突然今日は仕事をやめました。 – Doughtz
ポストグルを使用していますか?また、大文字と小文字を区別するために、 'ILIKE'が必要な場合があります – Vasfed