Rails 3.2.12 アプリでは、顧客モデルに phone 属性があります。顧客を取得するときに電話属性を削除したいと考えています。これが私たちがしたことです:
@customers = Customer.all
@customers.delete :phone
ただし、エラーがあります:
delete_all doesn't support limit scope
モデル オブジェクトから属性を削除する正しい方法は何ですか? ありがとう。
Rails 3.2.12 アプリでは、顧客モデルに phone 属性があります。顧客を取得するときに電話属性を削除したいと考えています。これが私たちがしたことです:
@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)