0
<% @user.friendships.each do |f| %>
  <%= f.friend.count %>
<% end %>

これは一連の数値を返しますが1 2 1 1 3、それらの値の合計を取得しようとすると、次のエラーが発生します: undefined method sum for 1:Fixnum.

<%= f.friend.count.sum %>
<%= f.friend.count.sum(:value) %>
<%= f.friend.count.inject {|sum, x| sum + x} %>
4

1 に答える 1

1

これがあなたが探しているものだと思います:

<%= @user.friendships.inject(0) {|sum, f| sum + f.friend.count} %>

注意すべき重要なことは、フレンドシップ コレクションに対して inject を呼び出し、その合計を f.count だけインクリメントしていることです。

于 2012-12-13T20:44:09.637 に答える