【问题标题】:How do I map all actions for a controller to the top-level in Rails?如何将控制器的所有操作映射到 Rails 的顶层?
【发布时间】:2010-09-23 01:28:35
【问题描述】:

每当我使用 Rails 开发网站时,我都会创建一个名为“front”的控制器,其中包含“index”、“how”和“about”等操作。因此,可以通过 /、/how/ 和 /about 访问主页、“工作原理”和“关于我们”页面。我的路线如下所示:

map.root :controller => "front", :action => "index"

map.connect 'how', :controller => 'front', :action => 'how'
map.connect 'about', :controller => 'front', :action => 'about'

我有两个问题:

1) 这是一个好的组织吗?

2) 有没有一种方法可以添加一个路由以使“前端”控制器中的所有操作都可以通过 /[action] 访问?

【问题讨论】:

    标签: ruby-on-rails routes


    【解决方案1】:

    我有时会将这条路线作为最后一条路线:

    map.connect ':action', :controller => 'main'
    

    ...处理您提到的所有操作。至于组织,我认为它总是取决于应用程序,它是什么等。加上一点个人偏好,我认为你走在正确的轨道上 :)

    【讨论】:

    • 啊,比我想象的要简单。我会试试看。
    • 这方面的棘手部分是您可能在优先级方面遇到问题。确保您在逻辑上考虑何时希望这条路线匹配(通常在其他所有事情之后)并且您应该很好。
    • 好吧,把这条线放在我的带有 AuthLogic 身份验证的路由插孔中。身份验证使用“UserSessionsController”,当访问 /user_session 时,应用程序会尝试访问 MainController 中的(不存在的)“user_session”方法。所以我想我必须手动将每个顶级页面的路由添加到路由文件中。这种很烂。
    • 确保这是最后一条路线。如果 AuthLogic 仍然有问题,那么我会询问他们的新闻组或其他内容,添加所需的最后匹配路由非常烦人......
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-14
    • 2020-07-17
    • 2021-10-15
    • 1970-01-01
    相关资源
    最近更新 更多