登录表单只会填充会话哈希值,因此没有模型。因此,我不知道在何处对登录表单进行验证。我应该如何验证用户名和密码的存在?我应该在客户端使用javascript进行操作吗?我认为这是有道理的,如果验证失败,我怎么能遍历错误哈希?
答案 0 :(得分:0)
非常简单,您可以使用ActiveModel
实现它。只需创建一个类,如下所示,并添加一些验证
class Session
include ActiveModel::Validations
extend ActiveModel::Naming
attr_accessor :username, :password
validates_presence_of :username, :password
def initialize(attrs = {})
attrs.each do |name, value|
send("#{name}=", value)
end
end
def persisted?
false
end
end
s = Session.new(username: 'Abc')
=> #<Session:0x000000058a3270 @username="Abc">
s.valid?
s.errors
=> #<ActiveModel::Errors:0x000000058ad900 ... @messages={:password=>["can't be blank"]}>
如果存在,您的表单应自动显示错误消息。