ruby on rails user here。次のコード行について質問があります。Rails、結果を反復処理する代わりに配列を返すモデルメソッド
最初の例です。
<% sailing.travelling_parties.each do |party| %>
<% party.party_registers.each do |reg| %>
<%= reg.user.detailed_user.first_name %>
<% end %>
<% end %>
私はビューで実行すると、私は複数の名前が印刷された私の期待した結果を得る。モデルに移動して次のように変更すると、
2番目の例ではモデルです。 **はこの全体の例で私が実際に達成しようとしていることを表しています。
class Sailing < ActiveRecord::Base
...
def gather_data
self.travelling_parties.each do |party|
party.party_registers.each do |reg|
reg.user.detailed_user.first_name
** use a variable to count loop iterations **
end
end
end
第二の例では、ビュー
<%= sailing.gather_data %>
にこれは、私はまったく予想していたものを、私は反復処理しようとしています「travelling_parties」で満たされた配列ではなくプリントアウトされました!したがって、明らかに、セーリングの記録にいくつの名前が入っているかにかかわらず、1回だけループします。
なぜこのようなことが起こっているのか、最初の例のように実際にビジネスロジックを表示しなくても、どのように動作させることができるでしょうか?
おかげ
グレートを!これは私が探していたものです、ありがとうございます。私の名前の配列を取得し、
<%= sailing.gather_data.count%>
と<%= sailing.gather_data%>
(基本的には電話をかけずに名前の数を得ることができることを知っていますかもう一度おねがいします! – Aptorian@Aptorian、 'sailing.gather_data'を変数に入れ、この変数に' count'の代わりに 'size'を使います – Ilya