I have models called User
, Activity
, and Task
and I can do the following
> puts Activity.joins(:task).to_sql
SELECT "activities".* FROM "activities" INNER JOIN "tasks" ON "tasks"."id" = "activities"."task_id" ORDER BY date DESC
> puts User.first.shared_tasks.to_sql
SELECT "tasks".* FROM "tasks" INNER JOIN "user_tasks" ON "tasks"."id" = "user_tasks"."task_id" WHERE "user_tasks"."user_id" = 1
但是,当我试图打上<条码>时,即条码>。 我收到了两个阵列:
> puts Activity.joins(:task).merge(User.first.shared_tasks).to_sql
NoMethodError: undefined method `to_sql for []:Array
Why is that not returning a relation? I need to put a where clause on it.
最新情况:
在进行进一步检查后,将立即对<代码>User.first. Commond_tasks进行评价。 我可以通过增加<条码><>条码/代码>来了解我所希望的行为。 呼吁:
> puts Activity.joins(:task).merge(User.first.shared_tasks.order()).to_sql
SELECT "activities".* FROM "activities" INNER JOIN "tasks" ON "tasks"."id" = "activities"."task_id" INNER JOIN "user_tasks" ON "tasks"."id" = "user_tasks"."task_id" WHERE "user_tasks"."user_id" = 1 ORDER BY date DESC
除了增加一个空洞的<条码><>条码/代码>外,是否还有更好的办法防止这一关系得到评估?