db / seeds.rb的配置

时间:2013-01-03 01:57:25

标签: ruby-on-rails

我将我的待办事项列表应用程序推送到github。

既不会创建用户,也不会创建管理员。 db不会上传到github(也不应该)。 所以我应该将所有初始设置添加到db / seeds.rb,以确保所有数据库期望都已到位。

此外,角色不会在种子文件中创建,因此应用程序无法注册用户。

我尝试将所有初始设置添加到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]
)

1 个答案:

答案 0 :(得分:1)

我有类似的东西。删除密码确认。就像你在登录表格一样。