ビューのネストされたループと同様に、配列の配列をプルするメソッドを作成しようとしています。railsネストされた属性を持つ複数のルビ配列
私はこれを行う私のUserモデルのメソッドを構築しようとしています:
@past_parties = User.parties
<%= @past_parties.each do |past_party| %>
<%= past_party.guests("email").uniq.each do |guest| %>
<%= guest.name %> <%= guest.email %>
<% end %>
<% end %>
これらは私のモデルです:
class User < ActiveRecord::Base
has_many :hosts, dependent: :destroy
has_many :parties, through: :hosts
def past_guests
self.parties.guests
end
end
class Host < ActiveRecord::Base
belongs_to :user
has_many :parties, dependent: :destroy
has_many :guests, through: :parties
end
class Party < ActiveRecord::Base
belongs_to :host
has_many :guests, dependent: :destroy
end
class Guest < ActiveRecord::Base
belongs_to :party
end
私はループがビューで仕事を得ることができますが、メソッドとしてビルドしようとすると(current_userがUserのインスタンスである場合、current_user.past_guestsを呼び出すことができます)、このエラーが発生します。
undefined method `guests' for #<ActiveRecord::Associations::CollectionProxy []>
ビューにループを作成せずに、招待したすべてのゲストを取得するにはどうすればよいですか?
、クラスメソッドにメソッドを変更します。 – power
ああ、私は間違って書いた...私はcurrent_user.past_guests、User.past_guestsは言うつもりだった。私はそれを修正しました。 – NothingToSeeHere