ユーザーがプロ メンバーシップにサインアップできるようにする Rails アプリがあります。キャンセルしたい場合は、このリンクをクリックすると、promembers_controller.rb で破棄アクションがトリガーされます。
<%= link_to "Cancel my account", promember_path(@user), :data => { :confirm => "Are you sure?" }, :method => :delete, :class => 'btn btn-mini' %>
このリンクを 2 つの異なるページで使用しようとしましたが、そのうちの 1 つ、つまりユーザーのプロフィール ページからしか機能しません。
http://localhost:3000/lawyer_profiles/22-user-name
ただし、そのページにサブスクリプションをキャンセルするリンクは必要ありません。
このように、ネストされたpromembers_controllerの「表示」ページにリンクを配置すると
http://localhost:3000/lawyer_profiles/22-user-name/promembers/40
または、このように編集ページに配置すると
http://localhost:3000/lawyer_profiles/22-user-name/promembers/37/edit
次に、次のルーティング エラーが発生します。
No route matches [DELETE] "/promembers"
ルートがある限り、そのリンクをどこに置くかで違いが生じる理由がわかりません。
resources :promembers do
member { post :update_card }
end
「破棄」という名前のアクションもありますpromembers_controller.rb
上記のネストされていない :promembers リソースに加えて、routes.rb ファイルにもこのようにネストされた :promembers があることに注意してください。
resources :lawyer_profiles do
resources :promembers
end
(同じリソースをネストしたものとネストしていないものがリンクの動作に影響するかどうかはわかりません。)
ネストされたページからリンクが機能しない理由を説明できますか?