我开始学习有关rails中的验证器并遇到以下问题。
我在应用程序上有一系列表单字段,我正在处理。我注意到如果我使用validates :pin_number, length: { is: 6 }
之类的rails本地验证器,它会在相关的表单字段旁边放一条漂亮的小消息:<span class="error">is the wrong length (should be 6 characters)</span>
太棒了!
但是,当我在下面创建自定义验证器以检查:pin_number的值时,我的错误消息虽然出现在顶部,却没有出现在违规字段旁边。
#from my controller hp_id.rb
validates :pin_number, pin: true
#from my custom validator in app/validators/pin_validator.rb
class PinValidator < ActiveModel::EachValidator
def validate_each (record, attribute, value)
if value > 9999
record.errors[attribute] << (options[:message] || "validator working")
end
end
end
我在网上浏览了一下,虽然我确实找到了编辑输入字段以显示验证错误的建议,但这种方法似乎很邋by,因为某些rails验证器已经具有此功能而没有对视图进行任何修改。
我的问题如何利用现有框架使用我自己的自定义验证器呈现<span class="error">
消息?
任何洞察力都赞赏!
答案 0 :(得分:0)
在您的情况下,您可以在一行中写下所有内容并以这种方式添加自定义消息:
#Model
validates_numericality_of :pin, :only_integer =>true,
:less_than => 9999,
:message => "Your custom message"