【问题标题】:what is attr_accessor in datamapper - ruby什么是 datamapper 中的 attr_accessor - ruby
【发布时间】:2012-02-16 17:05:56
【问题描述】:

我是 datamapper 的新手。我在这个论坛上看到了这段代码。

    class User
  include DataMapper::Resource

  property :id,                 Serial
  property :email,              String, :required => true, :unique => true, :format  => :email_address,
  property :name,               String
  property :hashed_password,    String
  property :salt,               String  
  property :created_at,         DateTime

  attr_accessor :password, :password_confirmation

属性意味着它定义了数据库表中的字段..attr_accessor 是什么意思..它是模型中的字段而不是数据库中的字段..

谢谢

【问题讨论】:

    标签: sinatra datamapper


    【解决方案1】:

    是的,你是对的。它是模型的属性(字段),但不在数据库中。您可以使用此类属性来保存不应保存在数据库中的数据,但这些数据对您应用程序中的其他对象很有用。

    例如:您可以为名为“密码”的模型字段定义访问器。然后当有人设置这个值时,你将它散列并存储在数据库中的适当字段中。

    【讨论】:

      【解决方案2】:

      看起来密码没有存储在数据库中,这很好。

      仅当他们说第一次登录或更改密码时,密码才会存储在用户对象中。由于普通的 ruby​​ sinatra 应用程序基本上在每次页面加载时都会启动,因此密码仅在它被散列并放入数据库等时才存在。

      换句话说,您通常可以预期获取密码的调用会失败。只有当您仍在处理登录或密码更改事件时,它才会起作用。

      【讨论】:

      • 如果我理解正确的话..attr_accessor 用于模型中的字段,但不在数据库中
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-06-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-11-11
      • 2023-04-07
      • 1970-01-01
      相关资源
      最近更新 更多