1

ヘルパー メソッド名を正しく機能させるのに問題があります。

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

私は is の単数形であるため、問題が発生していましたjunkiesjunky、この変更を行ってルートを見ると、#mergeヘルパーが次のように変更されます。

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

これを単にに変更する方法はありますmerge_junkieか? リソース black から削除して、match 構文を使用しようとしましたget "junkies/merge" => "junkies#merge", as: :junkieが、何らかの奇妙な理由でshow、ルートが正しいにもかかわらず、メソッドに誘導されました。

4

1 に答える 1

2

解決策は醜いものですが、機能します。影響を受けるのは show route だけであるため、別のブロック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 に答える