-1

私は、neo4j.rb に基づいた Rails モデル (コメント) を持っています。私の単純なメソッドは子の数を返す必要がありますが、代わりに LocalJumpError を返しています (ブロックが指定されていません (yield))。私は何を間違っていますか?

has_many :both, :children, model_class: Comment, unique: true

def get_number_of_replies
    if children.count == 0
      0
    else
      children.count + children.each.get_number_of_replies
    end
end
4

3 に答える 3

1

おもう

children.count + children.each.get_number_of_replies

する必要があります

children.count + children.collect(&:get_number_of_replies).sum

エラーが示すようにeach、ブロックが必要です。

于 2015-02-23T18:40:33.807 に答える
1

必要な結果を得るには、すべての子をループする必要があります。

def get_number_of_replies
  if children.count == 0
    0
  else
    total = 0
    children.each do |c|
      total += children.get_number_of_replies
    end
    children.count + total
  end
end
于 2015-02-23T19:20:33.777 に答える