Ответ 1
Была эта же проблема, и это сработало для меня:
root :to => "pages#show", :id => '1'
Я знаю, как установить корень маршрутов моего приложения rails на контроллер и действие.
Но как добавить id?
/pages/show/1
должен быть корнем.
Как это установить?
Была эта же проблема, и это сработало для меня:
root :to => "pages#show", :id => '1'
В Rails 4.0 вы можете объявить корневой маршрут следующим образом:
root 'controller#action'
Решение Matthew работает, но я думаю, что это более читаемо для получения объекта. Например, предположим, что вы хотите выполнить root для действия Page#show
для страницы с именем "посадку". Это немного читаемо:
root :to => "pages#show", :id => Page.find_by_name("landing").id
С точки зрения производительности это решение хуже, потому что для этого требуется дополнительный запрос к базе данных, но это решение более читаемо, если производительность не является высокоприоритетной.
Try:
match 'pages/show/:id' => 'pages#show', :as => :root
В консоли Rails. rake routes | grep root
, должен показать что-то вроде:
root /pages/show/:id(.:format) {:controller=>"pages", :action=>"show"}
Надеюсь, что это поможет.
Я использую Rails 5.1, чтобы указать главную страницу в конкретный блог. В config/routes.rb у меня есть...
root 'blogs#show', {id: 1}
Это укажет корневой маршрут на /blogs/ 1
Я делаю это на блоге, который я создаю. Первый блог будет основным блогом сайта, а также главной страницей.
Приветствия