레일즈 3에서 ActiveRecord를 사용하여 두 개의 다른 데이터베이스에서 두 개의 서로 다른 테이블에서 데이터를 가져옵니다. 이러한 데이터베이스는 서로 연결할 수 없지만 간단한 가입을해야합니다. 나는 관계를 보존하여 줄 아래로 묶을 수 있기를 원합니다.레코드가 반환 된 후 ActiveRecord에서 조인을 어떻게 수행합니까?
여기 당신이 볼 수 그래서, 내가 browser_id
이 browsers.name
동일해야 events
관계에에 browsers
을 가입하려는 내가
browsers = Browser.all # <-- this is fairly small and can reside in memory
events = Event.where(:row_date=>Date.today).select(:name, :browser_id)
을 뭐하는 거지의 단순화 된 버전입니다. events
은 릴레이션이며 여전히 줄 아래에 절을 추가 할 수 있으므로 db에 대한 쿼리를 아직 실행하고 싶지 않습니다. 나는 어떻게 이것을 성취 할 것인가? 나를 브라우저를 얻을 수 있도록 할
class EventLog < ActiveRecord::Base
belongs_to :browser
def get_todays_events
Event.where(:row_date=>Date.today).select(:name, :browser_id).includes(:browser)
end
end
: 여기, 내가 아래에서 허용하는 답변에 대한 몇 가지 코드를보고 싶은 그 사람들을 위해
편집
내가 생각 해낸 것입니다 다음과 같은 방식으로 이름을 지정하십시오.
get_todays_events.browser.name
흠, 새 레일은 SQL 쿼리에 메모리를 추가하기보다는 메모리에 조인하는 것처럼 보입니다. 팁 고마워! –