gpt4 book ai didi

ruby-on-rails - 带有变量的 validates_length_of

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

我有一个 ActiveRecord 模型:

class Message < ActiveRecord::Base

它有 2 个属性:content(字符串)和 max_content_length(整数)两者都是动态的,由用户设置。
我正在尝试使用 max_content_length 整数来验证 content 字符串的长度,如下所示:

validates_length_of :content, maximum: self.max_content_length

或者像这样:

validates_length_of :content, maximum: lambda{ self.max_content_length }

但 validates_length_of 抛出“未找到方法”或“最大值必须是非负整数或无穷大”异常(分别)。

是否有任何其他方法可以将 max_content_length 函数“注册”为长度验证器?

谢谢!

(我知道这个问题可能与 this questionthis one 重复,但不幸的是那里的答案有点离题且令人困惑)

最佳答案

自行验证:

class Message < ActiveRecord::Base

validate :validate_content_length

private

def validate_content_length
if content.length > max_content_length
errors.add :content, "too long (must be #{max_content_length} characters or less)"
end
end

end

帮助指南在这里http://guides.rubyonrails.org/active_record_validations.html#performing-custom-validations

关于ruby-on-rails - 带有变量的 validates_length_of,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26450360/

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