我想为我的应用程序创建管理员用户。我想在创建应用程序的同时创建管理员。就像我想要一个记录管理员在一开始就已经在数据库中。是否可以在实际创建应用程序之前初始化管理员,这样当我将应用程序放在heroku上并进入生产模式时,管理员已经在我的代码中指定了密码和用户名?
答案 0 :(得分:1)
是的,可以使用seeds.rb完成。您可以在第一次部署后添加要在应用程序中加载的初始数据。
您可以编写要在seeds.rb中创建的第一个管理员
-list <Application Attempt ID> List containers for application attempt.
在本地,你可以运行rake db:seed(填充初始数据)
如果您使用默认的PostgreSQL(heroku),则可以运行as,
yarn container -list appattempt_1452267331813_0009_000001
答案 1 :(得分:0)
您可以在rails中使用seeds.rb
文件来创建所需的记录,而不是heroku上的heroku run rake db:seed
答案 2 :(得分:0)
我有时会这样做 - 向用户类添加before_create
。它可以根据我的需要创建管理员。
before_create :first_user_admin
def first_user_admin
self.admin = true if User.count == 0
end
答案 3 :(得分:0)
要添加到@Sasidaran
的答案,您一定会关注Rails的seeds
功能:
#db/seeds.rb
Model.find_or_create_by param: "Value"
Model.find_or_create_by param: "Value2"
$ rake db:seed
$ heroku run rake db:seed
最好将seeds
文件视为batch file - 它只是运行您发送给模型等的命令,允许您包含所需的任何数据。您可以根据需要复杂或简单。
-
在您的情况下,我们不知道您的密码或密码是如何创建的。
如果你正在使用bcrypt-ruby
,那么你会想要做之类的事情(has_secure_password
):
#app/models/user.rb
class User < ActiveRecord::Base
has_secure_password
end
#db/seeds.rb
User.crate name: 'david', password: 'mUc3m00RsqyRe', password_confirmation: 'mUc3m00RsqyRe' #-> true
$ rake db:seed
$ heroku run rake db:seed
Devise以不同的方式做事(我相信)。如果您正在使用它,我可以使用相关信息进行更新。