0

私はdevise gemを使用しており、登録/編集ビューでユーザーのオブジェクトを表示しています。

このような問題があります。オブジェクトの削除リンクをクリックすると、ユーザーレコードが破棄されますが、オブジェクトを削除する必要があります。

ユーザーには多くの Web サイトがあるため、ユーザーに自分の Web サイトを表示し、次のコードを使用してユーザーが削除できるようにします。

<% @websites.each do |website| %>  
  <%unless current_user.websites.empty? %>
    <%= link_to 'X', website_path(website), method: :delete, data: { confirm: 'Are you sure?' } %>
  <% end %>      
<% end %> 

コントローラーコード:

class RegistrationsController < Devise::RegistrationsController
  def edit
    @websites = current_user.websites
    @reports = current_user.financial_reports
  end
end

class WebsitesController < ApplicationController
  def destroy
    @website = Website.find(params[:id])
    if (current_user.id != @website.user_id)
      redirect_to root_path
      flash[:notice] = 'You are not owner!'
    else
      @website.destroy
      respond_to do |format|
      format.html { redirect_to websites_url }
      format.js
    end
  end
end 

Websites_controller の標準的な動作は何も変更していません。

誰かがそれを解決する方法を提案できますか?

4

1 に答える 1

2

関連付けを確認する価値があります。:dependent => :destroyユーザーとWebサイトの関連付けの端が間違っている場合、Webサイトを破棄すると、関連付けられているユーザーも破棄されます。

于 2012-10-16T08:24:39.467 に答える