【问题标题】:How to populate some default users in Devise?如何在设计中填充一些默认用户?
【发布时间】:2011-11-20 17:41:56
【问题描述】:

我正在努力让 Devise 在我的 Rails 应用程序中工作。我是一个新的 Rails 用户。添加一些默认用户的正确方法是什么?

【问题讨论】:

    标签: ruby-on-rails ruby rubygems devise ruby-on-rails-3.1


    【解决方案1】:

    在 Rails 中设置任何默认数据的常规方法是在 db/seeds.rb 中添加数据:

    user1 = User.create :name => "User1", :email => "user1@example.com", :password => "user123"
    

    根据您的验证和设计功能,您可能需要输入更多字段。要使用这些数据,您只需调用 rake db:seed

    rake db:migrate
    rake db:seed
    

    【讨论】:

    • 你也可以添加如下代码:如果 Rails.env == 'development' 如果你有特定环境的种子
    • 另外,rake db:reset 将彻底重置数据库,包括为您重新播种。派上用场。
    【解决方案2】:

    Faker 是一个不错的选择,如果您不想手动写出所有用户。

    这个faker tutorial 展示了如何使用 gem 在一个相对简单的 rake 任务中填充数据库。

    【讨论】:

    • 第二个链接坏了
    【解决方案3】:

    补充:以下方法无效。

    User.new
    User.name = "Bob"
    User.password = "Bob123"
    User.password_confirmation = "Bob123"
    User.save!   ## Exception raised => Password field cannot be blank.
    

    当 Devise 运行其内部方法时,例如“从密码生成加密密码”,在用户调用“新”之后。因此,User.new 引发异常,表示未提供密码。而是使用,要么

    User.create({ :name => "Bob", ... })    # or 
    User.new({ :name => "Bob", ... }).save
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-01-17
      • 1970-01-01
      • 2020-06-11
      • 2017-04-23
      • 1970-01-01
      • 2011-04-26
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多