2012-05-11 4 views
0

삭제하기 전에 주소가 사용되고 있지 않은지 확인하려고합니다.레일 정의되지 않은 메소드 수

undefined method `count' for nil:NilClass 

내가 잘못 뭐하는 거지 :

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 

을 그러나이 나에게 오류를 제공, 다음과 같이 내 코드는?

+0

address_id는 관련성이있는 경우 두 테이블의 인덱스입니다. –

+0

질문에 언어 태그를 붙이시기 바랍니다. 이것은 스택 오버 플로우에 대한 태그 스팸을 최소로 유지할 수있게 해줍니다. 감사. –

+0

죄송합니다. 내 검색어와 관련 있다고 생각했습니다. 수업은 배웠다. –

답변

2

Organisation.find_by_address_id(params[:id])은 단일 객체를 반환하거나 address_id이없는 객체가있는 경우 nil을 반환합니다.

아마도 Organisation.find_all_by_address_id(params[:id])을 의미 할 것입니다.

+0

그것은 작동한다. 그래서 나는 그랬다. 당신의 도움을 주셔서 감사합니다. –

관련 문제