【发布时间】:2015-07-08 12:00:47
【问题描述】:
在我的 gem 中,我有 Rails 生成器来构建迁移。迁移非常简单:
class MigrateGenerator < Rails::Generators::Base
source_root File.expand_path(File.join(File.dirname(__FILE__), '../generators/templates'))
def create_migration
template "migration_template.rb", "db/migrate/create_orders_table.rb"
end
end
class CreateOrdersTable < ActiveRecord::Migration
def self.up
create_table(:my_default_name) do |t|
#some columns
end
#indexes
end
end
class Order < ActiveRecord::Base
self.primary_key = :id
self.table_name = 'my_default_name'
end
我的问题:是否有可能允许用户定义自己的表名?我知道我可以轻松地将参数传递给我的生成器,但是如何更改定义的self.table_name = 'my_default_name'
【问题讨论】:
-
“my_default_name”从何而来?每个用户
-
您想将
self.table_name作为参数传递给生成器吗? -
my_default_name顾名思义是我自己定义的。所以表名总是my_default_name。我想允许用户使用自定义名称生成迁移