繁体   English   中英

Rails 4活动记录查询

[英]Rails 4 active record query

我有2个模型,Project和TodoItem。 请参见下面的表格结构和型号。

我想做的是查询所有todo_items ,其中ssigned = current_user.fullnamecompleted_at为nil grouped_by 项目名称,而Ordered_by 项目名称 为nil

然后,我想循环出类似以下内容:

项目1名称

  • ToDo_Item 1的内容
  • ToDo_Item 2的内容
  • ToDo_Item 3的内容

项目2名称

  • ToDo_Item 1的内容
  • ToDo_Item 2的内容
  • ToDo_Item 3的内容

表结构:

create_table "projects", force: :cascade do |t|
    t.string   "name"
    t.text     "details"
    t.datetime "created_at", null: false
    t.datetime "updated_at", null: false
  end

create_table "todo_items", force: :cascade do |t|
    t.string   "content"
    t.string   "assigned"
    t.integer  "project_id"
    t.datetime "created_at",   null: false
    t.datetime "updated_at",   null: false
    t.datetime "completed_at"
  end

楷模:

class Project < ActiveRecord::Base
  has_many :todo_items, :dependent => :destroy
  validates_presence_of :name
end

class TodoItem < ActiveRecord::Base
  belongs_to :project 
end

先感谢您。

为您提供完整的解决方案

你可以试试这个

@projects = Project.includes(:todo_items).where(todo_items: {assigned: current_user.fullname, completed_at: nil }).group("projects.name").order("projects.name")

你快到了。

您只需要添加.where

@projects = Project.includes(:todo_items).where(completed_at: nil)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM