0

我有一个页面控制器,其中支持 3 个静态页面(例如:aboutus、faq 和 home)。我在控制器内没有任何操作,只有适当的视图,所以添加新页面会很容易。

我使用了默认路由:匹配 ':controller(/:action(/:id))(.:format)'

现在可以通过以下方式访问我的页面:'http://localhost:3000/pages/faq'(或任何其他页面)

我想给这些路线命名,所以当我从其他页面创建指向它们的链接时,我会使用一些类似的东西:

link_to 'FAQ' faq_path'

而不是 link_to 'FAQ' '/pages/faq'

是否可以创建“动态命名路由”?我试过这样的事情:

match 'pages/:action' => 'pages#:action', :as => :action

但它并没有真正起作用......

4

2 回答 2

4

您不能轻易地创建这样的动态方法,但是如果您以不同的方式思考它,您实际上是在参数化您的路径助手。Rails确实有一个简单的方法来做到这一点:

match "pages/:action", controller: "pages", as: "pages"

pages_path("faq") # => /pages/faq
于 2012-09-10T14:21:01.357 回答
1
match "pages/faq", to: "pages#faq", as: "faq"
match "pages/home", to: "pages#home", as: "home"
match "pages/aboutus", to: "pages#aboutus", as: "aboutus"

会给你以下帮手:

home_path or home_url
faq_path or faq_url
aboutus_path or aboutus_url
于 2012-09-10T14:06:32.113 回答