如何命名路由链接?

Pre*_*asz 2 ruby ruby-on-rails

我在向路由链接添加名称时遇到问题.下面是路由屏幕: 在此输入图像描述

我想命名最后一个链接:

GET    /backend/people/:id/vacations/new(.:format)
Run Code Online (Sandbox Code Playgroud)

我尝试了什么:

resources :vacations, only: [:new, :create] do
  collection do
    get 'new', as: 'people_vacation'
  end
end
Run Code Online (Sandbox Code Playgroud)

不幸的是,这段代码重复了新的操作. 在此输入图像描述

如何避免这种重复并且只有一个链接(带名称)到新操作?

Emi*_*asa 6

我想你应该将你的定义更新为:

resources :vacations, only: [:create] do
  collection do
    get 'new', as: 'people_vacation'
  end
end
Run Code Online (Sandbox Code Playgroud)

这样,"新"动作将不会被复制