我应该如何验证创建没有模型的实例的字段的存在?

时间:2014-01-14 04:37:53

标签: ruby-on-rails

登录表单只会填充会话哈希值,因此没有模型。因此,我不知道在何处对登录表单进行验证。我应该如何验证用户名和密码的存在?我应该在客户端使用javascript进行操作吗?我认为这是有道理的,如果验证失败,我怎么能遍历错误哈希?

1 个答案:

答案 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"]}>

如果存在,您的表单应自动显示错误消息。