我希望将控制器的show
动作设置为特定路径(没有控制器前缀的路径)。我知道可以通过控制器完成此操作
resources :items, path: ''
但是有办法只对控制器内的一个特定操作执行此操作吗?
我的最终目标是能够说出www.example.com/my-item-name
并将用户带到该项目,而无需更改URL。我尝试使用全包式路由,但重定向将前缀添加回我不想要的前缀。
有什么想法吗?
答案 0 :(得分:2)
您可以在routes.rb
文件中指定哪个控制器和操作响应特定路由,如下所示:
get 'something', to: 'controller_name#action_name'
答案 1 :(得分:0)
您可以使用match
,get
,post
,put
,宏手动定义单个路由:
get :bar, to: 'foos#bar'
get :bar, controller: 'foos' # works the same as above
post :bar, to: 'foos#bar'
如果您想更优雅地将多个路由路由到同一控制器,也可以使用scope
:
scope controller: 'foos' do
get :bar
get :baz
end