0

我将我的待办事项列表应用程序推送到 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 回答