1

我在让我的辅助方法名称正常工作时遇到问题,任何建议都会很棒:

#config/routes.rb
resources :junkie, only: [:show, :index, :destroy], as: :junkie do
  get :merge, on: :collection
end

所以我遇到了问题,因为我的单数形式是junkiesis junky,但是当我进行此更改并查看路线时,它会将#merge助手更改为:

merge_junkie_index GET    /junkies/merge(.:format)              junkies#merge

有什么办法可以将其更改为 justmerge_junkie吗?我尝试从资源黑色中删除它并使用匹配语法:但出于某种奇怪的原因,即使路线是正确的,这也会get "junkies/merge" => "junkies#merge", as: :junkie将我引向该方法。show

4

1 回答 1

2

该解决方案是一个丑陋的解决方案,但它有效,因为显示路线是唯一受此影响的路线,as: :junkie您可以将其拆分出来,将merge路线放在单独的块中。出于某种原因,资源的顺序也很重要,如果您不将合并放在首位,它会将 url 解释/junkie/merge/为 id 并执行show操作。所以它在你的路由文件中应该是这样的:

resources :junkies, only: [:index] do
  get :merge, on: :collection
end
resources :junkies, only: [:show, :destroy], as: :junkie
于 2013-02-15T17:49:48.100 回答