首页 > 解决方案 > 如何使用活动记录而不是数组从用户那里获取任务列表

问题描述

我正在尝试获取用户可以执行的任务列表。我成功地做到了,这是我的代码

@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})

理想状态是替换我将任务列表获取到单个查询的代码块。另一种选择是用数组选择语句替换我的第二行代码。虽然我不知道该怎么做。

任何帮助表示赞赏!

标签: sqlruby-on-railsrubyruby-on-rails-4activerecord

解决方案


推荐阅读