0

To Do リスト アプリケーションを github にプッシュしました。

ユーザーも管理者も作成されません。データベースは github にアップロードされません (アップロードすべきではありません)。したがって、すべての初期設定を db/seeds.rb に追加して、すべての db の期待が確実に満たされるようにする必要があります。

さらに、ロールはシード ファイルに作成されないため、アプリケーションはユーザーの登録に失敗します。

すべての初期設定を に追加しようとしましたdb/seeds.rb:

Role.create({name: "Admin"})
Role.create({name: "Woeker"})

user1 = User.create!(
    email: "admin2@gmail.com",
    password: "12345678",
    password_confirmation: "12345678"
    encrypted_password: "$2a$10$7aK4tZTsCDB64qQI/kl.d.nZGwjEJPh7YlUNE8/Ty.0JhAMS.ALX6"
    role_ids = [1]
)

user2 = User.create!(
    email: "worker2@gmail.com",
    password: "12345678",
    password_confirmation: "12345678"
    encrypted_password: "$2a$10$7aK4tZTsCDB64qQI/kl.d.nZGwjEJPh7YlUNE8/Ty.0JhAMS.ALX6"
    role_ids = [2]
)

(encrypted_pa​​ssword は Rails コンソールから取得されました: u = user.last..)

残念ながら、必要なものをすべて追加したかどうか、正確に追加したかどうかはわかりません。

のページでlocalhost:3000/users/sign_up、メール、パスワード、パスワードの確認を入力する必要があります。

これらは移行です:

class DeviseCreateUsers < ActiveRecord::Migration
  def change
    create_table(:users) do |t|
      ## Database authenticatable
      t.string :email,              :null => false, :default => ""
      t.string :encrypted_password, :null => false, :default => ""

      ## Recoverable
      t.string   :reset_password_token
      t.datetime :reset_password_sent_at

      ## Rememberable
      t.datetime :remember_created_at

      ## Trackable
      t.integer  :sign_in_count, :default => 0
      t.datetime :current_sign_in_at
      t.datetime :last_sign_in_at
      t.string   :current_sign_in_ip
      t.string   :last_sign_in_ip

      t.timestamps
    end

    add_index :users, :email,                :unique => true
    add_index :users, :reset_password_token, :unique => true
  end
end



class Roles < ActiveRecord::Migration
  def self.up
    create_table :roles do |t|
      t.string :name
      t.timestamps
    end
  end

  def self.down
    drop_table :roles
  end
end



class UserRoles < ActiveRecord::Migration
  def self.up
    create_table :roles_users, :id => false do |t|
      t.references :role, :user
    end
  end

  def self.down
    drop_table :roles_users
  end
end

どんな助けでも大歓迎です!

更新: これが解決策ですか?

Role.create({name: "Admin"})
Role.create({name: "Woeker"})

user1 = User.create!(
    email: "admin2@gmail.com",
    password: "12345678",
    password_confirmation: "12345678"
    role_ids = [1]
)

user2 = User.create!(
    email: "worker2@gmail.com",
    password: "12345678",
    password_confirmation: "12345678"
    role_ids = [2]
)
4

1 に答える 1

1

私はそのようなものを持っています。パスワード確認を削除します。サインインフォームにいるかのように正確に実行します。

于 2013-01-03T02:05:19.200 に答える