2012-05-11 12 views
0

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

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

それは動作するので、私はやったと思います。ご協力いただきありがとうございます。 –