Rails Routing(root:to => ...)
私のRailsアプリのルートルートをコントローラーとアクションに設定する方法を知っています。
しかし、IDを追加する方法は?
/pages/show/1
はルートでなければなりません。
これを設定するにはどうすればよいですか?
これと同じ問題があり、これは私のために働いた:
root :to => "pages#show", :id => '1'
Rails 4. では、次のようにルートルートを宣言できます。
root 'controller#action'
Matthewのソリューションは機能しますが、オブジェクトを取得する方が読みやすいと思います。たとえば、「landing」という名前のページのPage#show
アクションにルート化するとします。これはもう少し読みやすいです:
root :to => "pages#show", :id => Page.find_by_name("landing").id
パフォーマンスの観点から見ると、このソリューションは追加のデータベースクエリを必要とするため悪化しますが、パフォーマンスが優先度の高いものではない場合、このソリューションは読みやすくなります。
私はRails 5.1を使ってホームページを特定のブログに向けています。config/ routes.rbに...
root 'blogs#show', {id: 1}
これにより、ルートルートが/ blogs/1を指すようになります。
これは、作成中のブログサイトで行っています。最初のブログは、メインサイトのブログとホームページになります。
乾杯
試してください:
match 'pages/show/:id' => 'pages#show', :as => :root
In Rails console。rake routes | grep root
、次のように表示されます。
root /pages/show/:id(.:format) {:controller=>"pages", :action=>"show"}
お役に立てば幸いです。
Rails 5.1を使用して、これをconfig/routes.rbに追加します
root 'pages#show', {id: 1}