4

Gitリポジトリから複製したRubyonRailsアプリケーションがあります。新しいユーザーの登録などを行うには、ログインが必要です。現在、登録ユーザーがいないため、完全にロックアウトされているように見えます

ユーザーがというテーブルに格納されていることは知っていますusersが、基盤となるデータベースはMySQLであり、RubyonRailsアプリケーションのデータベースにアクセスする方法がわかりません。

誰かが私がユーザーを追加する方法を知っていますか?

4

1 に答える 1

10

これは非常に「古典的な」問題であり、入力されたパスワードをエンコードするレールピースが必要なため、ここではすぐに考えた(「mySQLを実行する」)ことはできません。
したがって、実際には次のようなレールを使用する必要があります(これはすべて、ローカルで作業する場合のデフォルトであるローカル開発環境で発生するはずです)。

ユーザーを作成する必要があります。

これを試して:

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やdeviseなどの認証システム、属性名、フィールド名など、いくつかのこと(必要に応じて変更すること)を前提としていますが、ニーズに合わせて調整できるはずです。特にdb/migrateのデータベース移行ファイル、user / model / userのモデル検証、db / seeds.rbのユーザー用の既存の「シード」ファイル、および認証を確認することで、これらが何であるかを判断できます。システムフック。

'どこで'これを行うかについて-明らかにコンソールは機能しますが、これにはシードファイルを使用することもできます。コンソールで使用する「create」コマンドはすべてここに配置して、で実行できます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 に答える