从rails模型对象中删除属性的正确方法

时间:2013-03-18 05:05:51

标签: ruby-on-rails ruby-on-rails-3 activerecord

我们的rails 3.2.12应用程序在客户模型中有手机属性。我们希望在检索客户时删除手机属性。以下是我们的所作所为:

@customers = Customer.all
@customers.delete :phone

但是有错误:

delete_all doesn't support limit scope

从模型对象中删除属性的正确方法是什么?感谢。

2 个答案:

答案 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)