在rails中创建默认对象的正确方法

时间:2014-09-23 18:06:10

标签: ruby-on-rails

我想知道在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

我想知道是否是一个更好的解决方案,因为我并不完全乐意在服务中拥有所有这些对象

1 个答案:

答案 0 :(得分:0)

如果您不打算在初始db种子之外使用此逻辑,则可以从服务中删除逻辑并将其移入seeds.rb。