Rails 3 Route Wildcards - PullRequest
       15

Rails 3 Route Wildcards

1 голос
/ 06 июля 2011

В настоящее время я настраиваю маршруты в приложении Rails 3, и был бы признателен, если бы кто-то мог указать мне правильное направление.

По сути, я настраиваю некоторые маршруты, чтобы предоставить данные для некоторых связанных выпадающих спискови хотел бы иметь возможность иметь такие маршруты, как:

/vehicles/trims/01299999
/vehicles/trims/02299999

, где 01299999 и 02299999 - это идентификаторы для двух разных параметров (в этом случае давайте скажем 01299999 загружает: vehicle_make в параметры и 02299999 это: fuel_type впараметры).Я знаю, что могу гарантировать, что они перенаправят на правильное действие контроллера и загрузят правильные параметры, используя ограничения.

Однако это усложняет то, что я хотел бы иметь большеодна опция, указанная в url, в любом порядке, например:

/vehicles/trims/01299999/02299999

или

/vehicles/trims/02299999/01299999

, и они будут загружать правильные параметры на основе структуры номера идентификатора (так что еслион начинается с «012», это всегда должно быть: vehicle_make, а если он начинается с «022», это всегда должно быть: fuel_type. Как я могу это сделать?

В качестве примечания, было бы здорово, если бы кто-то могукажите, как ограничить столбец идентификатора для моих моделей, чтобы при создании марки автомобиля его идентификатор всегда начинался с 012 и т. д.

Спасибо за любую помощь!

1 Ответ

1 голос
/ 06 июля 2011

Подстановочный знак маршрута перехватывает любое количество элементов URL, разделенных /, и выглядит следующим образом:

match '/vehicles/trims/*trims' => 'vehicles#trims'
# change 'vehicles#trims' to match your controller and action names

Вы говорите:

.было бы здорово, если бы кто-нибудь мог указать, как ограничить столбец идентификатора для моих моделей, чтобы при создании марки автомобиля его идентификатор всегда начинался с 012 и т. д.

Как правило, первичные ключине должно быть значимым.

...