2012-08-16 1 views
0

Rails 3.2.6 앱을 빌드 중이며이 앱에 사용자, 이벤트 및 체크 인이 있습니다. 저는 Postgres도 사용하고 있습니다.Ruby on Rails에서 포함 할 수없는 항목 및 조인을 가져올 수 없습니다.

사용자

has_many :events 

has_many :checkins 

이벤트

belongs_to :user 

has_many :checkins 

체크 인 나는 모든 CHEC을 요구

belongs_to :user 

belongs_to :event 

(아래 코드 사용) 또한 체크섬이 첨부 된 이벤트에 대한 모든 기본 데이터를 얻고 싶지만 작동하지 않습니다. 나는 체크인에 대해서만 데이터를 얻고 이벤트에 대해서는 아무것도 얻지 못한다. 뭐가 잘못 되었 니?

current_user.checkins.includes(:event) 

은 나도이 시도 :

current_user.checkins.joins(:event) 

UPDATE

내가 체크인 데이터 대신 모든 이벤트 데이터를 얻기 위해 이런 짓을. 올바른 방법입니까?

checkins = current_user.checkins 

@array = Array.new 

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

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

답변

1

당신은 current_user.checkins.includes(:event) 잘못 아무것도하지 않는,하지만 당신은 어떻게해야 무엇 레일과 다른 뭔가를 기대 할 수 있습니다. 각 이벤트에 액세스하려면 체크인을 통해해야합니다. 다음은 할 수있는 일의 예입니다.

checkins = current_user.checkins.includes(:event) 
checkins.each do |checkin| 
    puts "I'm at the event: #{checkin.event}" 
end 
+0

좋아 보인다

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

그런 다음 당신이 할 수있는 사용자 모델이 추가! 기본적으로 내가 달성해야하는 것은 각 "체크인"에 대한 체크인 데이터 대신 모든 이벤트 데이터를 가져 와서 반환하는 것입니다. 어떻게해야합니까? –

+0

내 코드가 업데이트되었습니다. 그 코드는 좋은 습관입니까? –

0

소리는 많은 관계를 통해 나옵니다. (당신이 체크 인 연결을 선언 한 후)

current_user.checked_in_events 
+0

재미있는 소리. 이것을 가져야하는 사용자 모델입니까? –

+0

예, 사용자 모델입니다. –

+0

하지만 나쁜 일은 아닙니다. 사용자는 자신이 만든 이벤트를 가질 수 있어야하며 다른 사람 이벤트에 체크인 할 수 있어야합니다. –

관련 문제