我有resources :posts
。如何自定义它的以下路径,以及使用常规资源路径名称调用它的能力:
URL Controller action Helper function
'q' 'posts#index' posts_path
'q/(:id)' 'posts#show' post_path(:id)
'ask' 'posts#new' new_post_path
'q' 'posts#create' posts_path
以下是我尝试过的内容,并且不能作为上述预期结果...
get 'q' => 'posts#index', as: :posts
get 'q/(:id)' => "posts#show", as: :post
get 'ask' => 'posts#new'
答案 0 :(得分:1)
您可能会收到错误,因为您正在尝试分配已在使用的路由名称。
resources posts
调用会产生posts
和post
路由的定义。如果您更改as: ..
子句以引用不同(未使用)的名称,则不会再出现该错误。
答案 1 :(得分:0)
尝试resources :posts path => 'q'