gpt4 book ai didi

ruby-on-rails - Ruby on Rails - Activeadmin,同一模型的不同验证

转载 作者:太空宇宙 更新时间:2023-11-03 16:16:25 24 4
gpt4 key购买 nike

我确实使用 activeadmin 注册了两次相同的模型:

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

但我想根据类型进行不同的验证。我想要这个用于视频:
models/video.rb

validate :validate_video_count
def validate_video_count
errors.add(:error, "Require minimum 1 video") if self.videos.size < 1
end

这是图片:
models/picture.rb

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

最佳答案

你不做简单的原因是什么

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

我认为这会解决您的问题。

如果您必须注册父类(super class),不幸的是由于 activeadmin 所依赖的 inherited_resources gem 中的错误,您需要强制实例化正确的子类,如下所示:

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

关于ruby-on-rails - Ruby on Rails - Activeadmin,同一模型的不同验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43407691/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com