Vous devez créer un modèle appelé Route, devrait ressembler à ceci:
Première génération avec échafaudage
rails g scaffold Route start_place_id:integer end_place_id:integer distance:decimal
exécuter les migrations
Ensuite, vous devez configurer les relations. Un lieu peut être un point de départ ou un point final, car l'identification n'est pas triviale par la relation, nous devons spécifier la classe et la clé étrangère pour fonctionner correctement (dans un simple a beaucoup d'association que nous pouvons faire has_many: routes et belongs_to: place, mais ce n'est pas le cas) route.rb
class Route<ActiveRecord::Base
belongs_to :start_place, :class_name=>"Place", :foreign_key=>"start_place_id"
belongs_to :end_place, :class_name=>"Place", :foreign_key=>"end_place_id
end
Dans votre place.rb vous devez ajouter
class Place<ActiveRecord::Base
has_many :routes_as_start, :class_name=>"Place", :foreign_key=>"start_place_id"
has_many :routes_as_end, :class_name=>"Place", :foreign_key=>"end_place_id"
end
pour construire une relation, vous pouvez faire comme ceci:
route = @place.routes_as_start.build
route.end_place = Place.create
route.save
Cela devrait également créer un itinéraire avec une destination finale.
Il y a beaucoup de tutoriels pour ça. Par exemple, http://guides.rubyonrails.org/association_basics.html –