Je suppose que cela dépend de la façon dont vous voulez que le modèle s'intègre à votre formulaire. Je suppose que les données du modèle Site sont renseignées par l'utilisateur, via le géocodage du fichier zip sur Yahoo/Google ou à partir d'une table de recherche de codes postaux statiques. Quoi qu'il en soit, voici la migration de mon modèle Location, que je remplis à partir d'une table de recherche statique via le code postal entré par l'utilisateur (zip) - ceci est rempli dans le formulaire principal par un appel AJAX qui envoie une requête de géocodage Google si elle ne peut pas trouver le code postal (la table devient assez vieux maintenant)
class CreateLocations < ActiveRecord::Migration
def self.up
create_table :locations do |t|
t.primary_key :id
t.string :category
t.string :placename
t.string :address_1
t.string :address_2
t.string :address_3
t.string :town
t.string :region
t.string :postcode
t.float :lon
t.float :lat
t.integer :local_authority_id
t.integer :hpu_id
t.integer :region_id
t.integer :country_id
t.timestamps
end
end
def self.down
drop_table :locations
end
end
Je suis allé avec des nombres à virgule flottante pour le LON/lat bien que l'utilisation d'une chaîne est probablement tout aussi bien sinon mieux.
J'ai utilisé des modèles et des tableaux séparés pour les subdivisions géographiques de la Région, du Pays et du Hpu (Health Protection Unit - une division régionale britannique pour les services nhs). Un certain nombre de raisons à cela, y compris la restriction de l'entrée de l'utilisateur pour ces menus déroulants, qui pourraient encore être édités par les administrateurs (Régions et Pays sont des unités stables mais les Hpus subissent des changements de nom atm). Les autres raisons incluaient l'expansion des modèles géographiques pour inclure des informations supplémentaires telles que les informations de shapefile (pour afficher les bordures des unités - non représentées dans cette migration car les shapefiles sont ajoutés ultérieurement en utilisant les outils d'import de PostGIS), et utiliser les associations fournies par ces modèles supplémentaires
class CreateRegions < ActiveRecord::Migration
def self.up
create_table :regions do |t|
t.primary_key :id
t.string :name
t.timestamps
end
end
def self.down
drop_table :regions
end
end
class CreateHpus < ActiveRecord::Migration
def self.up
create_table :hpus do |t|
t.primary_key :id
t.integer :region_id
t.string :name
t.timestamps
end
end
def self.down
drop_table :hpus
end
end
Que demandez-vous? –