我正在處理事件應用程序,我想根據查詢字符串中的3個參數位置或starts_at或ends_at來過濾事件。查詢字符串中可以有任何一個,兩個或所有參數。在我使用if-else聲明我需要使6個案件,這將使我的代碼笨拙。而是我在想實現的東西是這樣的:Rails - 根據查詢字符串中的參數數獲取結果
class EventsController < ApplicationController
def index
unless params.empty?
unless params[:location].nil?
@events = Event.where("location = ?", params[:location])
end
unless params[:starts_at].nil?
unless @events.empty?
@events = @events.where("start_date = ?", params[:start_date])
else
@events = Event.where("Date(starts_at) = Date(?)", params[:starts_at])
end
end
unless params[:ends_at].nil?
unless @events.empty?
@events = @events.where("end_date = ?", params[:end_date])
else
@events = Event.where("Date(ends_at) = Date(?)", params[:ends_at])
end
end
end
end
end
但由於這個代碼不工作,其中查詢DOEN不是一個陣列上運行。可有人建議我一些這方面的解決方案..