반응형
ActiveRecord : 대량 할당 할 수있는 모델의 모든 속성을 얻는 방법은 무엇입니까?
대량 할당 할 수있는 모든 속성 이름의 목록을 갖고 싶습니다. 기본적으로 대량 할당 할 수없는 입력 필드를 추가하지 않는 사용자 지정 양식 작성기에 필요합니다.
예를 들어 다음 모델이있는 경우 :
class Post < ActiveRecord::Base
attr_protected :account
belongs_to :author
validates_presence_of :title, :author
end
결과적으로 갖고 싶습니다 [:author, :title]
.
attr_accessible을 명시 적으로 정의한 경우 Post.accessible_attributes가이를 다룹니다.
Barring, 이와 같은 작업은 투박하지만 작동합니다.
Post.new.attributes.keys - Post.protected_attributes.to_a
앞서 언급 한 답변 중 일부는 Rails 4에 적용되지 않을 수 있습니다.
MyModel.attribute_names
Rails의 이러한 측면이 버전 4 http://weblog.rubyonrails.org/2012/3/21/strong-parameters로 변경되므로 테이블 속성 배열을 가져올 수 있지만 대량 할당 가능한 속성을 제공하지 않을 수도 있습니다 . /
그냥 사용
Post.accessible_attributes
그러면 클래스에서 액세스 할 수있는 모든 속성 이 반환됩니다.
모델의 경우 MyModel.attribute_names
또는 MyModel.column_names
.
인스턴스의 경우 MyModel.new.attribute_names
.
Post.accessible_attributes.to_a.map(&:to_sym)
반응형
'programing tip' 카테고리의 다른 글
VM 및 PyCharm으로 사용자 지정 PYTHONPATH를 구성하는 방법은 무엇입니까? (0) | 2020.10.31 |
---|---|
long int의 크기가 항상 4 바이트라고 가정 할 수 있습니까? (0) | 2020.10.31 |
gem install json -v 1.7.3은 '빌드 도구를 포함하도록 PATH를 업데이트하십시오'를 제공합니다. (0) | 2020.10.31 |
한 스토리 보드에서 다른 스토리 보드로 뷰 컨트롤러 이동 또는 복사 (0) | 2020.10.31 |
Eclipse / Maven 오류 : "이 환경에는 컴파일러가 제공되지 않음" (0) | 2020.10.31 |