0

Rails 3.2.6 アプリを構築しています。このアプリでは、ユーザー、イベント、およびチェックインを取得しました。Postgres も使用しています。

ユーザー

has_many :events

has_many :checkins

イベント

belongs_to :user

has_many :checkins

チェックイン

belongs_to :user

belongs_to :event

ユーザーが行ったすべてのチェックインを呼び出すと (以下のコードを使用)、チェックインが関連付けられているイベントのすべての基本データも取得したいのですが、機能しません。チェックインのデータのみを取得し、イベントについては何も取得しません。なにが問題ですか?

current_user.checkins.includes(:event)

私もこれを試しました:

current_user.checkins.joins(:event)

アップデート

チェックインデータではなく、すべてのイベントデータを取得するためにこれを行いました。これは正しい方法ですか?

checkins = current_user.checkins

@array = Array.new

@array = checkins.collect {|checkin| checkin.event}

render :json => {:results => @array}
4

2 に答える 2

1

あなたは で何も悪いことをしていcurrent_user.checkins.includes(:event)ませんが、Rails がすべきこととは違うことを期待しているかもしれません。各イベントにアクセスするには、チェックインを介してアクセスする必要があります。これはあなたがするかもしれない何かの例です:

checkins = current_user.checkins.includes(:event)
checkins.each do |checkin|
  puts "I'm at the event: #{checkin.event}"
end
于 2012-08-16T11:57:51.983 に答える
0

あなたが望んでいるのは、関係を通じて多くのことを望んでいるように聞こえます。これをユーザー モデルに追加します (checkins 関連付けを宣言した後)。

has_many :checked_in_events, :through => :checkins, :source => :event

それからあなたはすることができます

current_user.checked_in_events
于 2012-08-16T12:10:18.520 に答える