Маршруты Rails соответствуют полному имени хоста с несколькими периодами между - PullRequest
1 голос
/ 20 мая 2011

Я пытаюсь сопоставить URL что-то вроде

http://example.com/this.is.my.full.hostname/something/else

, очевидно, когда я передаю параметр в файле rout.rb, он не распознает этот параметр

мой код говоритследующие

match '/:computer_hostname/somethingelse' => 'test#info'

есть идеи, как правильно получить URL, который я хотел выше?Или это вообще возможно?Я знаю, что точка разрешена для символа в URL, но допускает ли она более одного?

1 Ответ

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

Я думаю, что метод / опция constraints поможет вам. Попробуйте что-то вроде следующего:

match ':hostname/something/else' => 'test#info',
  :constraints => {:hostname => /[A-Za-z0-9\._\-]+/}

Если вы делаете несколько совпадений с одним и тем же сегментом :hostname, вы можете заключить их в вызов метода ограничений:

constraints(:hostname => /[A-Za-z0-9\._\-]+/) do
  match ':hostname/something/else' => 'test#info'
  match ':hostname/foo/bar'        => 'test#foo'
end
...