为什么我不能在Rails中使用Record.all.destroy?

ele*_*119 7 ruby ruby-on-rails

我现在开始学习Ruby和Ruby on Rails框架.我发现在表中records,我可以找到id为5的记录,并使用以下代码将其删除:

Record.find(5).destroy

这使得I-chain方法能够找到记录并将其销毁.但是,如果我想销毁表中的所有记录,则逻辑命令将如下,因为all选择器选择表中的所有记录:

Record.all.destroy

这会返回NoMethodError!我知道我可以使用Record.destroy_allRecord.delete_all完成这项任务,但是,我想知道为什么我不能只使用最合乎逻辑的选择而不必查找类似的东西delete_all.我是这个框架的新手,所以我完全有可能在这里缺少一些基本的东西.

感谢您提前得到任何答案.

Mar*_*rth 14

这是一个设计决定.DataMapper采用了您的方法.被迫destroy_all明确写作可能很乏味,但也会阻止你做你真正不想要的事情(比如删除表格中的所有内容x = User; ...; x.destroy).