我们的rails 3.2.12应用程序在客户模型中有手机属性。我们希望在检索客户时删除手机属性。以下是我们的所作所为:
@customers = Customer.all
@customers.delete :phone
但是有错误:
delete_all doesn't support limit scope
从模型对象中删除属性的正确方法是什么?感谢。
答案 0 :(得分:4)
您可以使用Customer.select('name, address')
仅检索所需的字段。注意到您传递了一个带逗号分隔字段的字符串,名为。
这将生成类似这样的SQL请求
SELECT customer.name, customer.address FROM customer
然后,您只获得所需的数据而不将其从数据库中删除(这是您的原始呼叫尝试执行的操作)。
我的原始回复显示不正确使用pluck,只适用于单个列。
答案 1 :(得分:1)
我知道您正在使用Rails 3.2.12,但在Rails 4中也会使用works with multiple columns,允许使用类似
的内容Customer.pluck(:name, :address)