web-dev-qa-db-ja.com

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

私のRailsアプリのルートルートをコントローラーとアクションに設定する方法を知っています。

しかし、IDを追加する方法は?

/pages/show/1はルートでなければなりません。

これを設定するにはどうすればよいですか?

44
Joern Akkermann

これと同じ問題があり、これは私のために働いた:

root :to => "pages#show", :id => '1'
70
Matthew D.

Rails 4. では、次のようにルートルートを宣言できます。

root 'controller#action'
24
Brian Petro

Matthewのソリューションは機能しますが、オブジェクトを取得する方が読みやすいと思います。たとえば、「landing」という名前のページのPage#showアクションにルート化するとします。これはもう少し読みやすいです:

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

パフォーマンスの観点から見ると、このソリューションは追加のデータベースクエリを必要とするため悪化しますが、パフォーマンスが優先度の高いものではない場合、このソリューションは読みやすくなります。

4
Powers

私はRails 5.1を使ってホームページを特定のブログに向けています。config/ routes.rbに...

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

これにより、ルートルートが/ blogs/1を指すようになります。

これは、作成中のブログサイトで行っています。最初のブログは、メインサイトのブログとホームページになります。

乾杯

4
WBHauck

試してください:

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

In Rails console。rake routes | grep root、次のように表示されます。

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

お役に立てば幸いです。

3

Rails 5.1を使用して、これをconfig/routes.rbに追加します

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