Rails自定义路由不起作用

时间:2013-02-22 21:54:21

标签: ruby-on-rails ruby-on-rails-3

感觉我做得对,但显然没有。

我有一个宁静的资源,Posts,在控制器中有索引,显示,新建,更新,编辑等操作。在路线中,我有

resources :posts

我想让索引操作发生在URL'/ archive'而不是'/ posts'

所以我在routes.rb文件中添加了这一行,在资源一:

之后
match '/archive', to: "posts#index"

但是当我点击posts_path的链接时,它仍然会转到/发布(但如果我输入/ archive作为网址,它可以工作 - 虽然不太理想)。困惑。这可能与我安装了friendly_id有关吗?

2 个答案:

答案 0 :(得分:2)

resources :posts, except: [:index]
get 'archive' => 'posts#index', as: :posts

答案 1 :(得分:2)

您需要使用match '/archive', :to => 'posts#index', :as => 'archived'之类的内容。然后你将有一条新的路线archived_posts_path。方法posts_path不会根据自定义匹配器动态更改。您始终可以rake routes运行以查看您网站的路线列表。