我想知道在rails中创建默认对象的最佳方法。我已按以下方式创建了默认管理员。
应用程序/服务/ default_object_creation / create_default_admin_service.rb
class DefaultObjectCreation::AdminService
def self.create
Admin.create email: ENV["ADMIN_EMAIL"], password: ENV["ADMIN_PASS"]
end
end
分贝/ seeds.rb
DefaultObjectCreation::AdminService.create
分贝/迁移/的 ************** _device_create_admins.rb
class DeviseCreateAdmins < ActiveRecord::Migration
def change
create_table(:admins) do |t|
## Database authenticatable
t.string :email, null: false, default: ""
t.string :encrypted_password, null: false, default: ""
t.string :name, null: false, default: ""
## Rememberable
t.datetime :remember_created_at
t.timestamps
end
add_index :admins, :email, unique: true
DefaultObjectCreation::AdminService.create
end
end
我想知道是否是一个更好的解决方案,因为我并不完全乐意在服务中拥有所有这些对象
答案 0 :(得分:0)
如果您不打算在初始db种子之外使用此逻辑,则可以从服务中删除逻辑并将其移入seeds.rb。