Rails 验证 - 最大数据库条目
Rails validation - maximum database entries
我有一个 rails 项目,使用活动记录,想知道是否有一个验证帮助程序用于最大数量的单个条目。例如,如果您有一个表单提交并且只想要,比如 2,而您只想将前 2 个持久化到 table,您会怎么做?
我已经阅读了手册并查看了数值等,但这并不是我真正想要的。我试图在模型中编写自己的验证方法,但我假设有一个验证助手可以使这更容易:
def validatePassengerNumber
if self.passengers.length > 2
# unsure on how to refuse new data access to database
end
end
没有内置验证;至少我没遇到过。但以下是一种实施此类验证的方法:
def max_passengers
if self.passengers.count > 2
errors.add_to_base("There should not be more than 2 passengers.")
end
end
然后,您可以使用此验证对乘客数量进行检查。
校验return为真后,给库添加一个错误,禁止存入数据库。
def validate_passenger_number
self.errors.add(:base, "exceed maximum entry") if self.passengers.length > 2
end
在各自的模型中调用此自定义验证。
validate :validate_passenger_number, on: :create
您可以添加回调并验证记录。
before_validation :validate_passanger_number
private
def validate_passanger_number
errors.add("Sorry", "you have added maximum passengers.") if self.passengers.count > 2
end
我有一个 rails 项目,使用活动记录,想知道是否有一个验证帮助程序用于最大数量的单个条目。例如,如果您有一个表单提交并且只想要,比如 2,而您只想将前 2 个持久化到 table,您会怎么做?
我已经阅读了手册并查看了数值等,但这并不是我真正想要的。我试图在模型中编写自己的验证方法,但我假设有一个验证助手可以使这更容易:
def validatePassengerNumber
if self.passengers.length > 2
# unsure on how to refuse new data access to database
end
end
没有内置验证;至少我没遇到过。但以下是一种实施此类验证的方法:
def max_passengers
if self.passengers.count > 2
errors.add_to_base("There should not be more than 2 passengers.")
end
end
然后,您可以使用此验证对乘客数量进行检查。
校验return为真后,给库添加一个错误,禁止存入数据库。
def validate_passenger_number
self.errors.add(:base, "exceed maximum entry") if self.passengers.length > 2
end
在各自的模型中调用此自定义验证。
validate :validate_passenger_number, on: :create
您可以添加回调并验证记录。
before_validation :validate_passanger_number
private
def validate_passanger_number
errors.add("Sorry", "you have added maximum passengers.") if self.passengers.count > 2
end