我有一个从 Git 存储库克隆的 Ruby on Rails 应用程序。它需要登录才能执行任何操作,例如注册新用户。目前没有注册用户,所以我认为自己完全被锁定了
我知道用户存储在一个名为users
但底层数据库是 MySQL 的表中,我不知道如何访问 Ruby on Rails 应用程序的数据库。
有谁知道我将如何添加用户?
我有一个从 Git 存储库克隆的 Ruby on Rails 应用程序。它需要登录才能执行任何操作,例如注册新用户。目前没有注册用户,所以我认为自己完全被锁定了
我知道用户存储在一个名为users
但底层数据库是 MySQL 的表中,我不知道如何访问 Ruby on Rails 应用程序的数据库。
有谁知道我将如何添加用户?
这是一个非常“经典”的问题,并且直接的想法(“只做 mySQL”)在这里不起作用,因为需要有对输入的密码进行编码的 rails 片段。
所以你需要实际使用rails,像这样(这一切都应该发生在你的本地开发环境中,这是本地工作时的默认设置):
您需要创建一个用户。
尝试这个:
cd the_root_of_the_project
script/rails console
> User.create(:username => 'admin',
:password => 'abc123',
:password_confirmation => 'abc123')
# Add other fields, such as first_name, last_name, etc.
# as required by the user model validators.
# Perhaps :admin => true
这假设了一些事情(因此根据需要进行更改),例如身份验证系统(如 authLogic 或设计、属性和字段名称等),但您应该能够根据自己的需要进行调整。您可以通过查看一些内容来确定这些是什么,特别是 db/migrate 中的数据库迁移文件、user/model/user 中的模型验证、db/seeds.rb 中用户的任何现有“种子”文件以及身份验证系统挂钩。
至于“在哪里”执行此操作-显然控制台可以工作,但您可能还想为此使用种子文件。您在控制台中使用的任何“创建”命令都可以放在此处,然后使用rake db:seed
. 不利的一面是,如果您将此文件签入源代码管理,则安全性会降低。种子文件对于创建参考表、初始类别等其他任务非常有用。
如果您还没有实际创建数据库,则需要了解并使用以下任务:
rake db:create
# as it sounds, creates a database (but no application tables or columns),
# using the config/database.yml file for the connection info.
rake db:migrate
# Creates tables and columns using the db/migrate/ files.
rake db:seed
# Runs commands in db/seeds.rb to create initial records for the application.