参考記事を参考にグループの退会機能を作っていたのですが、エラーが出てしまい、グループから退会することができません。エラーの内容はわかっているのですが引数にそれらしきものを入れても変わりません。
初学者なのでわかりやすく教えていただきたいです。
エラーの内容
ActionController::UrlGenerationError in Circles#show No route matches {:action=>"destroy", :circle_id=>"5", :controller=>"circle_users", :id=>nil}, missing required keys: [:id] <%= link_to '退会する', circle_circle_user_path(@circle, @circle_user), method: :delete, data:{ confirm: "サークル「#{@circle.name}」を退会します。よろしいですか?" } ,class:"btn btn-warning btn-lg" %> ・・・
/app/views/circles/show.html.erb <% if @circle.circle_user?(current_user) %> <%= link_to '退会する', circle_circle_user_path(@circle, @circle_user), method: :delete, data:{ confirm: "サークル「#{@circle.name}」を退会します。よろしいですか?" } ,class:"btn btn-warning btn-lg" %> <!--サークルには所属していないが、ログインはしている場合 --> <% elsif current_user %> <% if @apply %> <%= link_to '申請取消', circle_apply_path(@circle, @apply), method: :delete, class:"btn btn-warning btn-lg" %> <% else %> <%= link_to '加入申請', circle_applies_path(@circle), method: :post, class:"btn btn-warning btn-lg" %> <% end %> <% end %>
/app/controllers/circle_users_controller.rb def destroy CircleUser.find(params[:id]) @circle_user.destroy @circle = Circle.find(params[:circle_id]) redirect_to circle_url(@circle, @circle_user) flash[:info] = "サークル「#{@circle.name}」を退会しました。" end
/app/controllers/circles_controller.rb def show @circle = Circle.find(params[:id]) @circleposts = @circle.circleposts.paginate(page: params[:page]) @circleposts = Circlepost.where(circle_id: @circle.id).all end
### 実施してみたこと
ルーティングをネストしているので、引数は二つであり、pathも単数形にしてみましたが、治りませんでした。
あなたの回答
tips
プレビュー