我想得到:
helper | path | action
--------------------|------------------|---------
file_path | GET /file | file#index
file_path(id) | GET /file/:id | file#show
show2_file_path(id) | GET /show2/:id | file#show2 <-- This is hard.
其中:id
在所有路线上都有相同的constraint: {id: /.+/}
。
解释:我想要第二种方式来显示名为show2
的文件或目录。
问题的根源:我无法使用/file/:id/show2
因为:id
是文件路径并且可能包含斜杠。因此,如果文件名为show2
,那将是不明确的。
我能找到的最好的是非常明确的:
resources :file, only: [:index, :show], constraints: { id: /./ }
get 'show2/:id' => 'file#show2', constraints: { id: /./ }, as: :show2_file
但我不满意,因为我在重复:
file
show2
在第2行重复3次我希望我能把它写成像#&#34;浅成员&#34;:
resources :file, only: [:index, :show], constraints: { id: /./ } do
member do
get :show2, shallow: true
end
end
将结合:
相关问题: