sql - 如何使用活动记录而不是数组从用户那里获取任务列表
问题描述
我正在尝试获取用户可以执行的任务列表。我成功地做到了,这是我的代码
@tasklist = []
user_info = [current_user.tag_list, current_user.ethnicity, current_user.gender, current_user.school, current_user.major ].flatten!
Task.all.each do |task|
if task.tag_list.all? { |i| user_info.include?(i) }
@tasklist.push(task)
end
end
现在,尽管在我的代码的先前实现中,这一切都很棒。我将@taglist 作为一个活动记录,并且我曾经使用两个活动记录函数 include 以及它的位置:
@availabletasks = @tasklist.includes(:states).where(states: {user_id: current_user.id, value_cd: 0})
理想状态是替换我将任务列表获取到单个查询的代码块。另一种选择是用数组选择语句替换我的第二行代码。虽然我不知道该怎么做。
任何帮助表示赞赏!
解决方案
推荐阅读
- javascript - 检测用户是否连接到互联网?
- excel-formula - Excel水平显示日期
- java - Camel CXF 对调用者的响应消息 - 重复的 WS-Security 部件
- codenameone - 代号一:在构建服务器中之前在真实设备上测试提交
- socket.io - 在 socket.on() 之外的 Socket.emit()
- docker - docker-compose 环境变量到 tomcat context.xml
- javascript - 如何提前获取元素属性(不是在我调用函数时)
- php - 如何在 laravel 中使用 Eloquent groupBy 和 orderBy?
- monit - Monit 无法启动/停止服务
- spring-boot - 没有 URL 映射的 Spring 自定义 Startup Servlet 被调用