Buongiorno lista/forum.
Altra richiesta di aiuto dal profondo della mia ignoranza.
Sto facendo un accrocchio che dovrebbe modificare il database se
lanciato… un po’ quello che fa il comando “migrate” sotto rails, ma
dato che sono su un programma ruby e gtk, mi manca l’automatismo.
Per ora mi sto occupando di aggiungere delle colonne ad una tabella.
L’idea è di avere un’array (“array” è femminile o maschile?) con dentro
degli hash per ogni colonna che contengono le caratteristiche di
quest’ultima, in modo da passarle al metodo apposito di activerecord e
generare le colonne nella tabella del database, qualcosa del genere:
colonnenuove = [{“nome” => “colonna1”, “tipo” => “string”, “default” =>
“”, “required” => “false”, “limit” => “10”}, {“nome” => “colonna2”,
“tipo” => “integer”, “default” => “0”, “required” => “false”}, {ecc.}]
Poi avrei la classe (all’incirca):
class ModTabella < ActiveRecord::Migration
def self.up(colonna)
add_column :tabella, :#{colonna[“nome”]}, :#{colonna["tipo]},
:default => #{colonna[“default”]}
end
end
e per chiamarla dovrei fare tipo così:
colonnenuove.each do |colonna|
ModAnimals.up(colonna)
end
Ruby però mi dice: “`up’: wrong number of arguments (1 for 0)
(ArgumentError)”
evidentemente sto sbagliando qualcosa, ma data la mia scarsa competenza
non riesco a venirne fuori… avete suggerimenti?
Ah, se esiste già una gemma che fa qualcosa del genere linkatela pure,
ma visto che ci sono vorrei comunque tentare di fare la cosa a mano,
così magari imparo qualcosa di più.
Come sempre grazie e a presto.