我正在尝试设置如下所示的路线acme.com/posts/:category/:status
:两者都是可选的:category
。:status
我写了很多变体,但没有一个奏效:
resources :posts do
match '(/:category)(/:status)', to: 'posts#index', as: 'filter', on: :collection
end
# Category Links
link_to "Questions", filter_posts_path(:questions)
link_to "Suggestions", filter_posts_path(:suggestions)
# Status Links
link_to "Published", filter_posts_path(params[:category], :published)
link_to "Draft", filter_posts_path(params[:category], :draft)
这个想法是能够1) 按类别过滤,2) 按状态过滤,以及 3) 如果两者都可用,则按类别和状态过滤。当前的设置也破坏了我的/posts/new
路径,总是重定向到posts#index
.