【发布时间】:2016-09-03 09:01:04
【问题描述】:
我正在尝试在 ruby on rails 中创建一个待办事项列表应用程序,该应用程序具有 3 个模型作为嵌套资源。
例如:
- 用户:
has_many :todo_lists - 待办事项列表:
has_many :todo_items&belongs_to :user - 待办事项:
belongs_to :todo_list&scope :completed, -> { where.not(completed_at: nil) }
运行 @user.todo_lists 返回用户的待办事项列表。
运行 @todo_lists.todo_items 返回待办事项列表的待办事项。
运行 @todo_lists.todo_items.completed 返回待办事项列表中已完成的待办事项。
但是
运行 @user.todo_lists.todo_items 返回错误:NoMethodError: undefined method 'todo_items'。
运行@user.todo_lists.todo_items.completed 也会返回错误:NoMethodError: undefined method 'todo_items'。
我们尝试了@user.todo_lists.map(&:todo_items).flatten,它为用户返回所有待办事项,但我们无法添加.completed 范围。
我走对了吗?
【问题讨论】:
-
您对@Deepak 和@slehmann36 有什么看法?
标签: ruby-on-rails ruby activerecord models