使用我们的 rails 3.2.12 应用程序的客户模型中有电话属性。我们想在检索客户时删除电话属性。这是我们所做的:
@customers = Customer.all
@customers.delete :phone
但是有错误:
delete_all doesn't support limit scope
从模型对象中删除属性的正确方法是什么?谢谢。
使用我们的 rails 3.2.12 应用程序的客户模型中有电话属性。我们想在检索客户时删除电话属性。这是我们所做的:
@customers = Customer.all
@customers.delete :phone
但是有错误:
delete_all doesn't support limit scope
从模型对象中删除属性的正确方法是什么?谢谢。
您可以使用它Customer.select('name, address')
来仅检索您想要的字段。请注意,您传递了一个带有逗号分隔字段的字符串。
这将生成一个这样的 SQL 请求
SELECT customer.name, customer.address FROM customer
然后,您只获取您想要的数据,而不将其从数据库中删除(这是您最初的调用试图做的)。
我最初的回复显示 pluck 的使用不正确,它只适用于单列。
我知道您使用的是 Rails 3.2.12,但在 Rails 4 中 pluck 也适用于多列,允许类似
Customer.pluck(:name, :address)