我试图从rails中获取一个复杂的数据。Rails 5 - 如何获得OR条件而不是AND的记录
我想要的是所有用户,与它们相关联的任务,并且仅限于特定项目。
下面是引用任务模式:
create_table "tasks", force: :cascade do |t|
t.date "start_date"
t.date "end_date"
t.integer "hours"
t.string "priority"
t.integer "project_id"
t.integer "user_id"
t.string "name"
t.string "description"
末
我完成这部分与此调用
users = User.includes(:tasks).where('tasks.end_date Between ? AND ?', Date.today.beginning_of_week, Date.today.end_of_week).references(:tasks).where('tasks.start_date Between ? AND ?', Date.today.beginning_of_week, Date.today.end_of_week).references(:tasks).where('tasks.project_id = ?', @project.id).map { |user| user.as_json.merge({tasks: user.tasks.as_json}) }
我的问题是,我查询没有找到基于任务在他们的日期正确。
我正在尝试查找一周内的所有任务,这些任务在该周内都有start_date或end_date。
这是可能的在一个查询中,还是我需要更高级的逻辑?
请与数据库服务器 –