【发布时间】:2020-04-20 01:16:55
【问题描述】:
我目前在我的控制器中有这个:
@employees = Employee.all
#need to keep params different because of nested route(id) and filter form params
if !params[:employee].blank? && !params[:contact].blank?
@logs = Log.both_filters(params[:employee], params[:contact]).date_ordered
elsif params[:employee_id]
@logs = Log.by_employee(params[:employee_id]).date_ordered
elsif !params[:employee].blank?
@logs = Log.by_employee(params[:employee]).date_ordered
elsif params[:contact_id]
@logs = Log.by_contact(params[:contact_id]).date_ordered
elsif !params[:contact].blank?
@logs = Log.by_contact(params[:contact]).date_ordered
else
@logs = Log.all.date_ordered
end
end
我必须设置两个不同的参数,因为索引也是员工和联系人的嵌套路由 (params[:contact_id]),然后我还想将加载与两个过滤器 (params[:contact]) 区分开来。
我为模型中的过滤器设置了参数:
where(employee: employee_id)
end
def self.by_contact(contact_id)
where(contact: contact_id)
end
我的控制器中看起来有很多逻辑,并且有少量重复。我只在 Ruby on Rails 上,还没有 JS。
提前谢谢你!
【问题讨论】: