これはレールほどneo4jではないかもしれません。でも多分私は間違っている
パラメータが特定の値である場合の状況を処理するための提案を探しています。例えば。私のクエリでは
@friends_events = current_user.friends.events(:e, :rel).where("rel.admin = {admin_p} AND e.size_max < {size_p}", uuid: @event_id, primary_category: params[:primary_category] ).params(admin_p: true, size_p: params[:group_max].to_i)
イベントにはsize_max
、整数または のプロパティがありますany
。今、私はany
空白の値を持っています。基本的に、いずれかを選択した場合、クエリでそのパラメーターをすべて無視する (または同様の方法で処理する) 必要があります。それをごまかす方法は、外部の状況を処理することです。いずれかが選択され、値が空白の場合、ヒットしない非常に高い数値に手動で設定します。
現在、奇妙なハッキーな方法を使用せずに、クエリの内外でこれを行う方法がわかりません。提案?
アップデート
あなたが提案したように私の質問があります。および「検証」を処理する方法
@friends_events = current_user.friends.events(:e, :rel).where("rel.admin = {admin_p} #{size_string}", uuid: @event_id, primary_category: params[:primary_category] ).params(admin_p: true, size_p: size_param)
そして、size_param
気に入らない空白に変更しました。両方のケースを処理できるようにしたかったのです。たとえば、最初にページにアクセスしたときのパラメータは空で、送信すると空白になります。Nil はシナリオ 1 では機能しますが、シナリオ 2 では機能しません。||
ケースは必要ですか?
def size_string
'AND e.size_max < {size_p}' if params[:group_max]
end
def size_param
#has not taken in blank scenario
params[:group_max].blank? ? false : params[:group_max].to_i
end
そして私の見解では、
<% if !@friends_events.blank? %>
私のエラーは
Don't know how to compare that. Left: 0 (Long); Right: false (Boolean)
私の見解では上の行から。に変更.blank?
すると.nil?
、フィルターが通過できるようになります (ただし、正しくありません)。