我正在处理事件应用程序,我想根据查询字符串中的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不是一个阵列上运行。可有人建议我一些这方面的解决方案..