4

私は Authlogic rails プラグインを使用しています。本当に私がそれを使用しているのは、サイトを編集できる管理者ユーザーを 1 人持つことだけです。人々がアカウントをサインアップするサイトではありません。すでにログインしているユーザーによって制限されたユーザー作成メソッドを作成することになりますが、もちろん、DB をクリアするとユーザーを作成できないため、何らかの方法で事前設定する必要があります。作成したユーザーのダンプを配置するための移行を試みましたが、うまくいかず、かなりハッキリしているようです。これを処理する最良の方法は何ですか? パスワードがハッシュ化されているので難しいので、パスワードを作成してからハッシュ化されたエントリを引き出す必要があるような気がします...

4

4 に答える 4

7

Rails 2.3.4 では、シード データベースに新しい機能が追加されています。

db/seed.rb ファイルにシードを追加できます。

User.create(:username => "admin", :password => "notthis", :password_confirmation => "notthis", :email => "admin@example.com")

次に、次のように挿入します。

rake db:seed

本番用またはテスト用

RAILS_ENV="production" rake db:seed  
RAILS_ENV="test" rake db:seed

これまでのところ、2.3.4 の私のお気に入りの機能

于 2009-10-14T05:10:43.067 に答える
6

>= Rails 2.3.4 を使用している場合、新機能には db/seeds.rb ファイルが含まれます。これが、シード データのデフォルト ファイルになりました。

そこでは、モデルを簡単に使用User.create(:login=>"admin", :etc => :etc)してデータを作成できます。

このアプローチでは、すでに DB がある場合rake db:setupと同様にデータをシードします。rake db:seed

古いプロジェクトでは、users.yml のようなフィクスチャ (すぐにパスワードを変更することを忘れないでください) を使用することがあります。

admin:
  id: 1
  email: admin@domain.com
  login: admin
  crypted_password: a4a4e4809f0a285e76bb6b35f97c9323e912adca
  salt: 7e8455432de1ab5f3fE0e724b1e71500a29ab5ca
  created_at: <%= Time.now.to_s :db %>
  updated_at: <%= Time.now.to_s :db %>

rake db:fixtures:load FIXTURES=users

または最後に、他の人がレーキ タスクのオプションがあると言っているように、それが役立つことを願っています。

于 2009-10-13T21:38:42.257 に答える
0

レーキタスクを追加します。

  # Add whatever fields you validate in user model
  # for me only username and password
  desc  'Add Admin: rake add_admin username=some_admin password=some_pass'
  task :add_admin => :environment do
    User.create!(:username=> ENV["username"], :password=> ENV["password"],:password_confirmation => ENV["password"])
  end
于 2009-10-13T19:12:54.960 に答える
0

最もよく使用されるアプローチは、空のデータベースでホストするようにデプロイした後に実行される rake タスクを使用することです。

于 2009-10-13T18:40:06.603 に答える