2017-04-14 4 views
2

서로 다른 검증 :루비 - ActiveAdmin을, 내가 ActiveAdmin을 두 번 동일 모델을 등록했던 것과 같은 모델

ActiveAdmin.register Media, as: 'Picture' do 
end 
ActiveAdmin.register Media, as: 'Video' do 
end 

는하지만 종류에 따라 다른 검증을 갖고 싶어. 나는 영상이 원하는 : 사진에 대한
모델/video.rb

그리고이 :
모델/picture.rb

validate :validate_picture_count 
def validate_picture_count 
    errors.add(:error, "Require minimum 1 picture") if self.pictures.size < 1 
end 
+0

I didn를 ' ActiveAdmin과 함께 작동하지만 레일즈 모델에 유효성 검사를 추가하지 않습니까? 그렇게하면 간단한 걱정으로 충분할 수 있습니다. 그렇다면 제가 도울 수 있습니다. – radubogdan

+0

'self'는'self.pictures.size'와'self.videos.size'라는 줄에 누가 있습니까? – lcguida

+0

모델에서 그 속성이 – KingOfBabu

답변

1

당신이 간단하지 않는 이유는 무엇입니까

ActiveAdmin.register Picture do 
end 
ActiveAdmin.register Media do 
end 

이렇게하면 문제가 해결 될 것입니다. 당신이 불행하게도 때문에 ActiveAdmin을가 의존하는 inherited_resources 보석의 버그, 슈퍼 클래스를 등록해야하는 경우

, 당신은 다음과 같이 오른쪽 서브 클래스의 인스턴스를 강제해야

controller do 
    def create 
    klass = Picture # or Video or another subclass 
    set_resource_ivar(klass.new(permitted_params["media"])) 

    super 
    end 

    def update 
    # similar pattern here to #create 
    end 
end