Настройте маршруты. Rb для Rails 3.0 - PullRequest
1 голос
/ 15 декабря 2010

Я только что перешел на использование Rails 3.0.3 на моей Mac OS X.

Когда я попытался сгенерировать контроллеры и представления следующим образом:

 $rails generate controller testing

он создал контроллер в соответствующем месте. я создал метод / действие в том же контроллере под названием greet и когда я попытался получить к нему доступ через браузер по адресу:

 http://localhost:3000/testing/greet

Это дало мне ошибку, сказав:

 Routing Error

 No route matches "/testing/greet"

Но если я добавлю следующую строку в мой routes.rb файл:

 get 'testing#greet'

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

Пожалуйста, помогите мне, как исправить эту проблему.

Спасибо!

Ответы [ 3 ]

2 голосов
/ 15 декабря 2010

Он не слишком усложняет.

Предположим, что тестирование возобновлено в маршрутах:

resources :testings do
  # for individual /testing/1/greet
  member do
    get 'greet'
  end

  # on the collection
  collection do
    get 'greet'
  end
end
0 голосов
/ 15 декабря 2010

Если вы переходите с Rails 2.x на Rails 3.0, в вашем routes.rb файле, вероятно, отсутствует эта строка:

 match ':controller/:action'

В Rails 2.x эта строка была:

 map.connect ':controller/:action'

Из-за изменения в Routing API и введения Action Dispatch вам необходимо добавить первую строку в вашем файле rout.rb для автоматического сопоставления каждого метода.

PS: Пожалуйста, помните, что если вам нужночтобы переписать вышеупомянутую маршрутизацию, вам нужно объявить команды маршрутизации над этой линией, потому что приоритет в Rails Routing использует подход «снизу-вниз».

Спасибо!

0 голосов
/ 15 декабря 2010

Вы слишком усложнили маршрутизацию.Пожалуйста, прочитайте Руководство по маршрутизации для просветления.

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