Я использую STI в Rails, и у меня есть объект Vehicle, который имеет много разных типов подклассов, таких как Car, Truck и т. Д. Это для простого приложения, поэтому STI работает хорошо в этом случае, ноУ меня проблемы с созданием единой формы, в которой можно создать запись любого типа транспортного средства.
Используя следующую маршрутизацию:
resources :vehicles
resources :cars, :controller => 'vehicles'
resources :trucks, :controller => 'vehicles'
Я могу настроить / автомобили и / грузовые автомобили настроеныи оба указывают на одну и ту же форму.Однако, поскольку форма указывает на контроллер транспортных средств и генерирует объект Vehicle для формы, она не может знать, что URL / cars должен создавать объект Car.
Я пытаюсь получитьсистема маршрутизации, в которой / cars будет указывать на форму, которая по сути знает, как создать объект для формы, используя Car.new или даже Report.new (: type => "Car").Я думал о работе системы маршрутизации, такой как / vehicle /: subclass, и как-то использовал params [: subclass] в контроллере, но я также не могу понять, как сделать такую маршрутизацию и все же избежать других ошибок маршрутизации, вызванных Rails'STI magic.
Я всегда мог разобрать URL, чтобы получить значение, но это кажется небезопасным и хакерским способом сделать это.
Мне любопытно, есть ли у кого-нибудь совет или опыт в Rails, как это сделать.Спасибо!