0
  • 固有コードの所属先:コミュニティ
  • 一意のコードの所属先: ユーザー
  • ユーザー has_many :unique_codes
  • コミュニティ has_many :unique_codes

unique_codes以下のようにすべてを取得したい

@unique_codes = @user.unique_codes
@unique_codes_count = unique_codes.count

ただし、すでに削除されているコミュニティもあります。ユーザーが 10 個の unique_codes を持っていると仮定すると、1 つのコミュニティーが既に削除されています。

@unique_codes_count戻ります109、アクティブなコミュニティのunique_codesの数が必要です。

どうやって?

4

2 に答える 2

1

試す:

UniqueCode モデル:

class UniqueCode  
    belongs_to :community, :dependent => :destroy
end

コントローラーコード:

   def method_name
     count = 0
     @unique_codes.each do |code|
        if code != nil
          count = count + 1
        end
     end
     puts "This count is giving me the number of unique codes which are not deleted for active community"+count.to_s
   end

count は、null 値を持たない行の数を返します。

于 2013-01-22T13:34:29.210 に答える
1

試す:

add :dependent => :destroy in community model:

has_many :unique_codes, :dependent => :nullify

@unique_codes = @user.unique_codes.where("community_id IS NOT NULL")
@unique_codes_count = @unique_codes.count
于 2013-01-22T13:34:46.650 に答える