【问题标题】:how to modify new fields in devise如何修改设计中的新字段
【发布时间】:2012-12-28 20:48:26
【问题描述】:

我向我的设计用户添加了两个字段。我通过在迁移文件中添加它们来做到这一点,如下所示:

t.datetime  :access_bought_at, :default => DateTime.civil(0, 0, 0, 0, 0, 0, 0)
t.string    :access_type, :default => "none"

然后让这些属性在用户模型中可访问:

attr_accessible :email, :password, :password_confirmation, :remember_me, :access_type, :access_bought_at

然后进行迁移 (rake db:migrate)。

但我在访问和修改这些字段时遇到了问题。我对 Rails 很陌生,我很确定答案很简单,但我找不到(或理解我发现的)关于如何访问和修改这些字段的信息。这就是我想要做的。在某些控制器中,我想修改这些字段,我正在这样做:

current_user::access_type = "forever"
current_user::access_bought_at = Date.current()

但是,如果我让

puts current_user::email
puts current_user::access_type
puts current_user::access_bought_at

只有电子邮件被打印出来。我猜我错过了一个步骤并且我没有更新数据库,或者我做错了。我在这里(update a table which in not devise model on sign up using devise?)读到我应该在模型中放一个 def。一个def如何?这是有道理的,既然我改变了模型,我应该给出关于如何修改它的说明,所以添加一个方法来做到这一点似乎是正确的,但是那个方法应该做什么呢?

【问题讨论】:

    标签: ruby-on-rails devise


    【解决方案1】:

    设计用户模型仍然像任何其他模型一样具有 activerecord api

    current_user.access_type = "forever"
    current_user.access_bought_at = Date.current()
    current_user.save
    
    puts current_user.email
    puts current_user.access_type
    puts current_user.access_bought_at
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-23
      • 1970-01-01
      • 2013-08-15
      • 1970-01-01
      • 2019-11-18
      • 1970-01-01
      相关资源
      最近更新 更多