我将我的待办事项列表应用程序推送到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_password取自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]
)
答案 0 :(得分:1)
我有类似的东西。删除密码确认。就像你在登录表格一样。