Вложенные маршруты (и ограничения) - PullRequest
0 голосов
/ 05 мая 2011

Это то, что я использую в моем файле rout.rb

  match 'trackers/(:token)' => 'trackers#show' 

  resources :trackers do
    resources :locations
  end

Есть ли в любом случае гнездо :locations под оператором сопоставления, поэтому в URL для местоположений будет использоваться токен трекера (которыйэто строка букв и цифр шесть) вместо использования идентификатора трекера?Кроме того, я хочу, чтобы оператор match работал независимо от символов в URL-адресе ... все токены начинаются с 1X, но если кто-то наберет 1x, я все равно хочу, чтобы он работал.Кажется, я не могу расшифровать синтаксис / регулярное выражение, которые бы работали.

1 Ответ

2 голосов
/ 05 мая 2011

Вы можете обойти все это, просто добавив to_param метод к вашей Tracker модели:

def to_param
  token
end

Тогда вы можете полностью избавиться от вашего заявления match. Все ссылки, созданные с использованием tracker_path(tracker), edit_tracker_path(tracker) и т. Д., Автоматически будут использовать ваше поле token.

Однако имейте в виду, что даже при использовании поля token ваши формы будут по-прежнему представлять значение как params[:id], а не params[:token].

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...