私は姓と姓の両方で名前のデータベースを検索しようとしています。ただし、メイデン名がnilの場合、検索はクラッシュします。私はif/thenステートメントで回避策を作成しましたが、これをルビーで行うための適切な(よりクリーンな)方法を学びたいと思っています。Ruby on Rails 4 - nilでWhere文がクラッシュする
if user.maiden_name.nil?
x = Alumni.where(firstname: user.first_name, lastname: user.last_name)
else
x = Alumni.where(firstname: user.first_name, lastname: [user.last_name, user.maiden_name])
end
ありがとうございます!あなたが本当に望むことを
Alumni.where(firstname: user.first_name,
lastname: [user.last_name, user.maiden_name].compact)
をしかし、それを次のとおりです。次のように
検索時にエラーが発生しましたか? –
Neilが言ったことは、nil maiden_nameはうまくいくはずだからです。 –
あなたは正しいです、エラーは実際に.upcaseにありました。これは無名の旧姓があったときにクラッシュしていました。 null以外の名前のsql文にupcaseを追加する方法はありますか? – user3461645