我遇到问题让我的帮助方法名称正常工作,任何建议都会很棒:
#config/routes.rb
resources :junkie, only: [:show, :index, :destroy], as: :junkie do
get :merge, on: :collection
end
所以我遇到了问题,因为junkies
的单数形式是junky
,但是当我进行此更改并查看路线时,它会将#merge
帮助器更改为:
merge_junkie_index GET /junkies/merge(.:format) junkies#merge
有没有办法将其更改为merge_junkie
?我尝试将其从资源黑色中删除并使用匹配语法:get "junkies/merge" => "junkies#merge", as: :junkie
但由于某些奇怪的原因,这导致我使用show
方法,即使路线是正确的。
答案 0 :(得分:2)
解决方案是一个丑陋的解决方案,但是它有效,因为展示路线是唯一受as: :junkie
影响的路线,您可以将其分解出来,将merge
路线放在一个单独的区块中。由于某些原因,资源的排序也很重要,如果您不先放置合并,它会将网址/junkie/merge/
解释为ID并点击show
操作。所以它应该在你的路线文件中看起来像这样:
resources :junkies, only: [:index] do
get :merge, on: :collection
end
resources :junkies, only: [:show, :destroy], as: :junkie