如何在rails 4.0中动态创建迁移文件

时间:2015-08-12 10:41:00

标签: ruby ruby-on-rails-4

如何在rails 4.0中动态创建迁移文件?

我想通过我的lib文件动态地向不同的表添加一些列。 如何从lib文件中添加和执行它?

1 个答案:

答案 0 :(得分:-2)

是的,我找到了一种从lib添加迁移文件的方法。我为此创建了一个方法。以下代码段不完整。但是可以更好地动态创建迁移文件。

 def create_columns
    .........
    .........
    columns.each { |column| add_columns << "\tadd_column(':#{tb_name}', :#{column})\n" }
    columns
 end

 def migration_file_content(tb_with_cols)
<<-RUBY
  class AddMissingColumnsToTable < ActiveRecord::Migration
     def change_table
    #{create_columns(tb_with_cols)}
   end
 end
  RUBY
 end


 def write_content_to_file(path, content)
    File.open(path, 'w+') do |f|
      f.write(content)
    end
 end