Жемчужина реформы: отношения между таблицами в форме
Я пытаюсь создать сервисную форму для моего веб-приложения, используя Rails 4.0, slim, simple_form gem и реформирование gem.
Таблица услуг "принадлежит" городским таблицам, типу транспортного средства, таблицам водителей и клиентов.
Сервисная модель:
class Service < ActiveRecord::Base
has_paper_trail
# Constants
ACCEPTED_BRANCH_OFFICES = [ 'diadema', 'valinhos' ]
ACCEPTED_SERVICE_TYPES = [ 'retail', 'contract' ]
ACCEPTED_PRICING_TYPES = [ 'fixed', 'not_fixed' ]
ACCEPTED_MANAGEMENT_STATUSES = [ "waiting_confirmation", 'confirmed', 'canceled']
ACCEPTED_PAYMENT_METHODS = [ 'contract', 'billet_banking' ]
# relations
belongs_to :customer
belongs_to :one_way_travel_driver, class_name: 'Driver'
belongs_to :return_trip_driver, class_name: 'Driver'
belongs_to :origin_city, class_name: 'City'
belongs_to :destiny_city, class_name: 'City'
belongs_to :vehicle_type
has_one :configuration_table
# validations
validates :origin_city, presence: true
validates :destiny_city, presence: true
validates :customer_id, presence: true
validates :one_way_travel_driver, presence: true
validates :return_trip_driver, presence: true
validates :vehicle_type_id, presence: true
[...]
end
И часть формы обслуживания:
= f.input :origin_city_id, collection: City.order(:name)
= f.input :destiny_city_id, collection: City.order(:name)
= f.input :one_way_travel_driver_id, collection: Driver.order(:name)
= f.input :return_trip_driver_id, collection: Driver.order(:name)
Я хочу получить origin_city_id, destiny_city_id, one_way_travel_driver_id и return_trip_driver_id (из таблиц City и Driver) для формы.
Как я могу сделать это используя Reform gem и Form Object? Нужно ли использовать композицию?