我有一个消息模型,我一直在寻找各种gems / js进行客户端验证。然后我开始阅读有关活动模型验证的内容,我对rails非常陌生,所以请原谅我没有完全理解文档。
首先我说的是我可以使用ActiveModel验证执行客户端验证并设置我自己的自定义错误消息
我在消息模型的顶部
include ActiveModel::Validations
进一步阅读已确定
我应该使用
validates_with MyValidator
但这不起作用,因为我收到错误消息
uninitialized constant Message::MyValidator
如果我把它放在模型中
我也读过 -
To cause a validation error, you must add to the record‘s errors directly from within the validators message
class MyValidator < ActiveModel::Validator
def validate(record)
record.errors.add :base, "This is some custom error message"
record.errors.add :first_name, "This is some complex validation"
# etc...
end
所以这就是说我可以在客户端添加自己的自定义错误消息吗?
我现在的问题是了解它所做的事情,我在哪里放这些课程和方法等。如果有人能指出我正确的方向我会很感激,我真的很想学习
由于
答案 0 :(得分:1)
ActiveModel验证不提供客户端验证。如果您想在客户端使用Rails验证器,我建议使用client_side_validations gem。
如果您在入门时遇到问题,我建议您在模型中执行单一,简单的验证,并在尝试将其移动到客户端之前验证它是否有效。例如,在Message
班级中:
# app/models/message.rb
class Message
include ActiveModel::Validations
attr_accessor :sender
validates :sender, presence: true
end
# in the console
m = Message.new
m.valid? #=> false
m.errors.full_messages #=> ["Sender can't be blank"]
然后开始使用其他类型的validates
,如长度或格式,然后使用validate
方法进行自定义验证,然后如果您觉得自己需要它,则使用{完整验证类{1}}。