我试图使用以下方法删除商店集合中的对象:
store.widgets.where(code: 'xyz').first.destroy
并从承诺中获得以下结果:
[:@action, :@realized, :@exception, :@value, :@error, :@delayed, :@prev, :@next]
并且不删除/销毁对象。
这是正确的方法吗?
答案 0 :(得分:1)
问题是由我自己的(遗留)#destroy方法引起的,该方法覆盖了从first
到destroy
的承诺链的行为。
可以确认两者
store.widgets.delete(store.widgets.where(code: 'xyz').first)
和
store.widgets.where(code: 'xyz').first.destroy
按预期工作。
答案 1 :(得分:0)
尝试这样的事情:
store.widgets.delete(store.widgets.where(code: 'xyz').first)
或者如果你真的想删除第一项:
store.widgets.delete_at(0)