2 votes

Création dynamique de modèles pour une table dans rails

J'ai une migration qui va créer dynamiquement des tables à la volée par date. Quelque chose comme ceci :

class CreateCollectorPeriodTable < ActiveRecord::Migration

  def self.create_with(name)  
    create_table name.to_sym do |t|
      t.string :text, :limit => 1024
    end
  end 
end

Je veux créer un modèle qui accédera à cette migration

J'ai lu ceci : Rails génère un modèle à partir d'une table existante ? Mais dans une autre question, quelqu'un a expliqué pourquoi je ne devais pas essayer de faire correspondre un modèle à plusieurs tables

Des suggestions ?

3voto

fl00r Points 41855
class CreateCollectorPeriodTable < ActiveRecord::Migration
  # name should be plural
  # i.e.: name = 'chickens'
  def self.create_with(name)  
    create_table name.to_sym do |t|
      t.string :text, :limit => 1024
    end
    model_file = File.join("app", "models", name.singularize+".rb")
    model_name = name.singularize.capitalize
    File.open(model_file, "w+") do |f|
      f << "class #{model_name} < ActiveRecord::Base\nend"
    end
  end 
end

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X