4

我有一个从 Git 存储库克隆的 Ruby on Rails 应用程序。它需要登录才能执行任何操作,例如注册新用户。目前没有注册用户,所以我认为自己完全被锁定了

我知道用户存储在一个名为users但底层数据库是 MySQL 的表中,我不知道如何访问 Ruby on Rails 应用程序的数据库。

有谁知道我将如何添加用户?

4

1 回答 1

10

这是一个非常“经典”的问题,并且直接的想法(“只做 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.
于 2012-08-04T17:49:24.343 回答