【问题标题】:Rails define controller as root controllerRails 将控制器定义为根控制器
【发布时间】:2012-03-22 14:09:09
【问题描述】:

我知道在 Rails (3.2.2) 中,我可以在 routes.rb 中使用以下内容将请求路由到 /

root :to => 'main_pages#index'

如何使 MainPages 成为所有索引操作的默认控制器?

例如,如果我使用rails g controller 来创建一个名为“Foo”的新控制器,其中包含动作“hi”和“bye”,Rails 会自动路由myapp/foo/himyapp/foo/bye

如何使 MainPages 成为索引操作的默认控制器,所以如果我在 MainPages 中创建一个名为“about”的方法,Rails 将路由 /about

编辑

那么,一旦我完成了路由,我应该使用link_to 链接到这些新页面还是只使用直接路径?

【问题讨论】:

    标签: ruby-on-rails ruby ruby-on-rails-3.1 routing


    【解决方案1】:

    一个默认的 Rails 路由是:

    match ':controller(/:action(/:id))'
    

    你可以用你的控制器名称覆盖它:

    match '/:action(/:id)', :controller => 'main_pages'
    

    【讨论】:

    • link_to 的工作方式与以往一样,它会考虑您的路线。或者应该尝试一下。 link_to 与您在 link_to(:controller => "main", ...) 或 link_to(main_index_path) 或您之前所做的任何事情之前所做的保持相同。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-04-18
    • 1970-01-01
    • 1970-01-01
    • 2015-02-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多