call_status = open で unit_id が nil でないすべての呼び出しを選択する必要があるスコープを作成しています。私はRubyが本当に苦手で、Railsも初めてなので、これを正しく表現するのに苦労しています。
ここに私が持っているもの:
scope :open_calls, where(:call_status => "open", :unit_id != nil).order("id ASC")
nil を評価するために別の演算子を使用する必要がありますか?
call_status = open で unit_id が nil でないすべての呼び出しを選択する必要があるスコープを作成しています。私はRubyが本当に苦手で、Railsも初めてなので、これを正しく表現するのに苦労しています。
ここに私が持っているもの:
scope :open_calls, where(:call_status => "open", :unit_id != nil).order("id ASC")
nil を評価するために別の演算子を使用する必要がありますか?
私の知る限り、ハッシュを使用して NULL 句を作成するように ActiveRecord に指示する方法はありません。ただし、文字列スタイルとハッシュ スタイルの where 句を連結できます。
scope :open_calls, where(:call_status => "open").where("unit_id IS NOT NULL").order("id ASC")
あなたはこれを行うことができます:
scope :open_calls, where("call_status IS ? AND unit_id IS NOT ?", "open", nil).order("id ASC")
値"open"とnilが配列に配置され、?それらを挿入するために使用することに注意してください。これは、引用/エスケープなどによる SQL インジェクションのバグを防ぐのに役立ち、強く推奨されます。詳しくはこちらをご覧ください。