Rails Routing (root :to => …)

后端 未结 6 1579
北恋
北恋 2021-01-31 02:03

I know how to set the routes root of my rails app to a controller and an action.

But how to add an id?

/pages/show/1 should be the root.

How

相关标签:
6条回答
  • 2021-01-31 02:30

    As of Rails 4.0, you can declare the root route like this:

    root 'controller#action'
    
    0 讨论(0)
  • 2021-01-31 02:32

    Use Rails 5.1 Add this to the config/routes.rb

    root 'pages#show', {id: 1}
    
    0 讨论(0)
  • 2021-01-31 02:34

    Matthew's solution works, but I think it is more readable to fetch the object. For example, let's say you want to root to the Page#show action for the page with the name "landing". This is a bit more readable:

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

    From a performance perspective, this solution is worse because it requires an additional database query, but this solution is more readable if performance is not a high priority.

    0 讨论(0)
  • 2021-01-31 02:37

    Try:

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

    In Rails console. rake routes | grep root, should show something like:

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

    Hope that helps.

    0 讨论(0)
  • 2021-01-31 02:39

    Had this same problem and this worked for me:

    root :to => "pages#show", :id => '1'
    
    0 讨论(0)
  • 2021-01-31 02:44

    I'm using Rails 5.1 to point the home page to a specific blog. In config/routes.rb I have ...

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

    This will point the root route to /blogs/1

    I'm doing this on a blog site I'm building. The first blog will be the main site blog as well as the homepage.

    Cheers

    0 讨论(0)
提交回复
热议问题