我有一个页面控制器,其中我支持3个静态页面(例如:aboutus,faq和home)。我在控制器内部没有任何操作,只有相应的视图,因此添加新页面将很容易。
我使用了默认路线: match':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
但它确实没有用......
答案 0 :(得分:4)
你不能轻易地创建这样的动态方法,但是如果你以不同的方式想到它,你实际上是在为你的路径助手设置参数。 Rails 确实有一个简单的方法:
match "pages/:action", controller: "pages", as: "pages"
pages_path("faq") # => /pages/faq
答案 1 :(得分: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