2013-03-18 3 views
2

레일 3.2.12 앱을 사용하여 고객 모델에 전화 속성이 있습니다. 고객을 검색 할 때 전화 속성을 언젠가 제거하고 싶습니다. 여기에 우리가 무슨 짓을 :레일스 모델 객체에서 속성을 제거하는 올바른 방법

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

그러나이 오류 :

delete_all doesn't support limit scope 

모델 객체에서 속성을 제거하는 올바른 방법은 무엇입니까? 감사.

+1

같은 것을 허용도 works with multiple columns,있다. – Veraticus

답변

4

Customer.select('name, address')을 사용하여 원하는 필드 만 검색 할 수 있습니다. 당신은 쉼표로 분리 된 필드를 가진 문자열을 전달했다.

당신은 다음 (원래 통화가 시도되는 것입니다) 데이터베이스에서 삭제하지 않고 원하는 데이터 만 얻을이

SELECT customer.name, customer.address FROM customer 

같은 SQL 요청을 생성합니다.

내 원래 응답에 단일 열에 대해서만 작동하는 잘못된 방법이 사용 된 것으로 나타났습니다.

+0

매우 흥미 롭습니다! pluck 정의 (http://apidock.com/rails/ActiveRecord/Calculations/pluck)는 지정된 단일 열 이름의 값을 가진 배열을 반환한다고 말합니다. 여러 열을 가져올 수 있습니까? 또한 pluck에 의해 반환 된 객체에 SQL 작업 (예 : .where)을 추가로 적용 할 수 있습니까? – user938363

+0

레일 콘솔에서 테스트 한 것만으로도 하나의 열만 사용할 수 있습니다. – user938363

+0

내 잘못, 그렇지 참조 – muttonlamb

1

난 당신이 레일 3.2.12을 사용하고 있는지 알고 있지만, 레일 4 뽑는다 당신은 아마 그냥 전화 번호를 표시하기보다는 그것을 삭제하지 할

Customer.pluck(:name, :address) 
관련 문제