Подтвердить что ты не робот

Rails Routing (root: to =>...)

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

Но как добавить id?

/pages/show/1 должен быть корнем.

Как это установить?

4b9b3361

Ответ 1

Была эта же проблема, и это сработало для меня:

root :to => "pages#show", :id => '1'

Ответ 2

В Rails 4.0 вы можете объявить корневой маршрут следующим образом:

root 'controller#action'

Ответ 3

Решение Matthew работает, но я думаю, что это более читаемо для получения объекта. Например, предположим, что вы хотите выполнить root для действия Page#show для страницы с именем "посадку". Это немного читаемо:

root :to => "pages#show", :id => Page.find_by_name("landing").id

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

Ответ 4

Try:

 match 'pages/show/:id' => 'pages#show', :as => :root

В консоли Rails. rake routes | grep root, должен показать что-то вроде:

root     /pages/show/:id(.:format)      {:controller=>"pages", :action=>"show"}

Надеюсь, что это поможет.

Ответ 5

Я использую Rails 5.1, чтобы указать главную страницу в конкретный блог. В config/routes.rb у меня есть...

root 'blogs#show', {id: 1}

Это укажет корневой маршрут на /blogs/ 1

Я делаю это на блоге, который я создаю. Первый блог будет основным блогом сайта, а также главной страницей.

Приветствия