如何从路由助手中删除资源名称?

时间:2019-03-13 07:51:33

标签: ruby-on-rails ruby routing

我有一条路线:

resources :promo_pages, path: 'promo' do
    get :promo_rubizza, on: :collection, path: 'rubizza', as: :rubizza
end

此路线已创建-rubizza_promo_pages_path

但是我想拥有-rubizza_path

如何实施?
我想将其实现为resources :promo_pages, path: 'promo', as: '',但它创建了rubizza__index_path

UPD::输出rails routes

rubizza_promo_pages GET    /promo/rubizza(.:format)       promo_pages#promo_rubizza

2 个答案:

答案 0 :(得分:1)

在路线中,请定义以下路线(将其置于与resources相同的级别上,而无需嵌套):

get 'promo/rubizza', to: 'promo_pages#promo_rubizza', as: 'rubizza'

然后,您应该可以使用rubizza_pathrubizza_url

答案 1 :(得分:0)

可自定义路线名称详细信息here

如何根据控制器和动作定义路径?

 get 'promo_pages/promo_rubizza', to: 'promo_pages#promo_rubizza', as: :rubizza

它将返回:

 Prefix Verb URI Pattern                          Controller#Action
rubizza GET  /promo_pages/promo_rubizza(.:format) promo_pages#promo_rubizza