Необходимо создать модель с именем Route, которая должна выглядеть следующим образом:
Сначала создать с помощью скаффолда
rails g scaffold Route start_place_id:integer end_place_id:integer distance:decimal
выполнить миграцию
Затем необходимо настроитьотношения.Место может быть начальной или конечной точкой, потому что идентификация не является тривиальной по отношению, мы должны указать класс и внешний ключ, чтобы работать должным образом (в простом есть много ассоциаций, которые мы можем сделать has_many: маршруты,and own_to: место, но это не так) 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
В вашем place.rb вы должны добавить
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
Чтобы построить отношение, вы можете сделать это следующим образом:
route = @place.routes_as_start.build
route.end_place = Place.create
route.save
Это также должно создать маршрут с конечным местом.