ActiveRecord 객체의 모든 속성 (id, created_at, updated_at 제외)을 nil로 설정하는 가장 쉬운 방법은 무엇입니까?ActiveRecord 객체의 모든 속성 (id, created_at, updated_at 제외)을 nil로 설정하는 가장 쉬운 방법은 무엇입니까?
10
A
답변
5
이 배열의 모든 속성을 포함하지 모델에 attribute_names
라고, 그래서 사용 속성 필터링 거부 : 그것은 한 번 일이 있다면 http://api.rubyonrails.org/classes/ActiveRecord/Base.html#method-i-attribute_names
5
를 참조
class Model < AR::Base
def nilify_attributes!(except = nil)
except ||= %w{id created_at updated_at}
attribute_names.reject { |attr| except.include?(attr) }.each { |attr| self[attr] = nil }
end
end
을, 당신은 할 수 이 컨트롤러에서 :
@record.update_attributes(Hash[*@record.attributes.except('created_at','updated_at','id').map { |a| [a.first, nil] }.flatten])
2
나는 이미 이것을 알고있다. 나는 또 다른 해결책을 제기 한 같은 상황을 보았습니다.
record.dup.attributes.keep_if{|k,v| !v.nil?}
여기서 record는 활성 레코드 개체입니다.
+0
이것은 나를 위해 일했으며 레일즈 4.2를 사용하고 있습니다. 하나의 라이너가 좋습니다. – onebree
관련 문제
- 1. ActiveRecord/Rails의 created_at, updated_at 열의 이름 바꾸기
- 2. ActiveRecord 인스턴스에서 created_at 및 updated_at을 제거하는 가장 좋은 방법은 무엇입니까?
- 3. 델리게이트를 nil로 설정하는 방법은 무엇입니까?
- 4. 레일 오버라이드 updated_at 속성
- 5. Jinja2에서는 모든 키를 사전의 값으로 설정하는 가장 쉬운 방법은 무엇입니까?
- 6. ID 맵없이 ActiveRecord 객체에 영구 인스턴스 변수를 설정하는 방법은 무엇입니까?
- 7. XML 응답 메시지에서 객체의 속성을 채우는 가장 쉬운 방법은 무엇입니까?
- 8. Obj-C에서 객체 통신을 설정하는 가장 쉬운 방법은 무엇입니까?
- 9. viewDidUnload()에서 nil로 설정하는 것들
- 10. 레일스에서 ActiveRecord 객체의 기능을 확장하는 방법은 무엇입니까?
- 11. 객체의 속성을 기반으로하는 activerecord 객체 배열의 고유 요소를 가져 오는 가장 좋은 방법은 무엇입니까?
- 12. ActiveRecord # 객체의 클래스가 잘못되었습니다.
- 13. id 값에 따라 달라지는 ActiveRecord 속성 지속성
- 14. Blackberry에서 응용 프로그램의 배경 이미지를 설정하는 가장 쉬운 방법은 무엇입니까
- 15. 전체 배열의 값을 설정하는 가장 쉬운 방법은 무엇입니까?
- 16. Doctrine 양식의 created_at 및 updated_at 필드에 대한 기본 날짜 설정
- 17. 모든 양식 값이 비어 있는지 확인하는 가장 쉬운 방법은 무엇입니까?
- 18. 해제 한 후 nil로 설정하는 이유는 무엇입니까?
- 19. 성 ActiveRecord HasMany 속성
- 20. ruby activerecord 대체 된 updated_at 열을 사용하는 방법
- 21. "id"유형 객체의 속성 가져 오기 iphone
- 22. 모든 wxWidgets 샘플을 다운로드하고 컴파일하는 가장 쉬운 방법은 무엇입니까?
- 23. C#의 XML에서 모든 속성을 제거하는 가장 쉬운 방법은 무엇입니까?
- 24. 내 모든 BLOBSTORE 데이터를 삭제하는 가장 쉬운 방법은 무엇입니까?
- 25. PHP : 객체의 모든 요소를 가져 오는 가장 좋은 방법은 무엇입니까?
- 26. 가장 쉬운 방법은
- 27. 열을 복제하는 가장 쉬운 방법은 무엇입니까?
- 28. Csharp winform에서 모든 빈 문자열 텍스트 상자 ("")를 null 값으로 설정하는 가장 쉬운 방법은 무엇입니까?
- 29. Box2D에서 객체의 sleepTime을 설정하는 방법은 무엇입니까?
- 30. 런타임에 객체의 다양한 속성을 설정하는 방법은 무엇입니까?
정직하게 말하면 이것은 매우 특별한 경우 인 것 같습니다. 왜 이것이 필요한지 조금 설명 할 수 있습니까? 아마도 더 나은 해결책이있을 것입니다. 그동안 내 대답을 확인해보십시오. – lwe
그래, 조금 이상하다는 걸 알지만 꼭 필요하다고 믿어. 귀하의 답변 주셔서 감사합니다. – ben
환영합니다 :) – lwe