0

削除する前に、アドレスが使用されていないことを確認しようとしています。私のコードは次のとおりです。

def destroy
        @address = current_user.addresses.find_by_id(params[:id])
        redirect_to user_addresses_path(current_user) if @address.nil?

        if Organisation.find_by_address_id(params[:id]).count == 0 && Event.find_by_address_id(params[:id]).count == 0
            @address.destroy
            redirect_to user_addresses_path(current_user)
        else
            flash[:error] = "Cannot delete address because it is being used"
            redirect_to user_addresses_path(current_user)
        end
    end

ただし、これによりエラーが発生します。

undefined method `count' for nil:NilClass

私は何が間違っているのですか?

4

1 に答える 1

2

Organisation.find_by_address_id(params[:id])単一のオブジェクトを返すか、nilそれがないオブジェクトaddress_idが存在しない場合。

おそらくあなたは意味しOrganisation.find_all_by_address_id(params[:id])ました。

于 2012-05-11T21:33:38.253 に答える