我有2个模型,Project和TodoItem。请参阅下面的表结构和模型。
我要做的是查询所有 todo_items ,其中 ssigned = current_user.fullname 和 completed_at为零 groups_by 项目名称和Ordered_by 项目名称。
然后我想循环出类似的东西:
PROJECT 1名称
PROJECT 2名称
表格结构:
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
提前谢谢。
答案 0 :(得分:1)
完整的解决方案
你可以试试这个
@projects = Project.includes(:todo_items).where(todo_items: {assigned: current_user.fullname, completed_at: nil }).group("projects.name").order("projects.name")
答案 1 :(得分:0)
你几乎就在那里。
您只需添加.where
:
@projects = Project.includes(:todo_items).where(completed_at: nil)