我在rails中構建一個任務列表應用程序,允許用戶創建包含任務的任務列表。我正在嘗試設置過濾功能,以便只顯示任務列表,並將其所有任務標記爲完成。通過嵌套資源邏輯過濾ActiveRecord記錄 - Rails
目前:
列表模型:class List < ActiveRecord::Base
belongs_to :user
has_many :tasks
end
任務模式:
class Task < ActiveRecord::Base
belongs_to :list
def completed?
!completed_at.blank?
end
end
據我瞭解,ActiveRecord的的.where
查詢方法只着眼於在該模型的領域,它的值(例如:@lists.where(name: "List Name")
)
有沒有人知道一種做類似於下面的僞代碼的方法:
@completed_lists = @lists.where(list.tasks.completed.count == list.tasks.count)
感謝
您的解決方案提供了N + 1。 –
感謝您的回答,它的效果很好,除了結果是一個數組,而不是一個ActiveRecord關係。有沒有辦法將它轉換回ActiveRecord關係? – slehmann36