gpt4 book ai didi

ruby-on-rails - 使用 before_save 回调或自定义验证器添加验证错误?

转载 作者:数据小太阳 更新时间:2023-10-29 07:10:24 28 4
gpt4 key购买 nike

我有一个模型 Listing belongs_to :user。或者,User has_many :listings。每个列表都有一个对其进行分类的类别字段( 等)。 User 还有一个名为 is_premium 的 bool 字段。

这是我验证类别的方式...

validates_format_of :category,
:with => /(dogs|cats|birds|tigers|lions|rhinos)/,
:message => 'is incorrect'

假设我只想让高级用户能够添加老虎狮子犀牛。我该怎么做?最好在 before_save 方法中执行此操作吗?

before_save :premium_check

def premium_check
# Some type of logic here to see if category is tiger, lion, or rhino.
# If it is, then check if the user is premium. If it's not, it doesn't matter.
# If user isn't premium then add an error message.
end

提前致谢!

最佳答案

class Listing < ActiveRecord::Base    
validate :premium_category

private

def premium_category
if !user.is_premium && %w(tigers lions rhinos).include?(category))
errors.add(:category, "not valid for non premium users")
end
end
end

关于ruby-on-rails - 使用 before_save 回调或自定义验证器添加验证错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19544646/

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