感觉我做得对,但显然没有。
我有一个宁静的资源,Posts,在控制器中有索引,显示,新建,更新,编辑等操作。在路线中,我有
resources :posts
我想让索引操作发生在URL'/ archive'而不是'/ posts'
所以我在routes.rb文件中添加了这一行,在资源一:
之后match '/archive', to: "posts#index"
但是当我点击posts_path的链接时,它仍然会转到/发布(但如果我输入/ archive作为网址,它可以工作 - 虽然不太理想)。困惑。这可能与我安装了friendly_id有关吗?
答案 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
运行以查看您网站的路线列表。