我正在尝试了解Rails开箱即用的委托方法。这就是我想要做的。所以,我Accounts
有{_ 1}}。所以我正在尝试计算帐户的任务数量,这就是我目前正在做的事情:
Tasks
非常标准的东西。但我正在尝试将此方法移动到委托方法。我试过这个,但它不起作用
def total_tasks
tasks.count
end
那不行,我真的没想到。有没有办法可以做到这一点?
答案 0 :(得分:5)
delegate :count, to: :tasks, prefix: "total"
这只是创建方法的元编程:
def total_count
tasks.send(:count)
end
虽然因为你应该使用size
而不是count
,因此这不太适合委托,因为后者总是会导致数据库查询,即使关联已被急切加载。
def tasks_total
tasks.size # prevents n+1 query issue.
end
为什么你想要为此创建一个方法超出我的范围,因为它实际上是要输入的另一个字符。