2014-10-29 3 views
0

У меня есть три модели: компании, событие, event_spaceрельсов выбрать из объединения с помощью присоединиться

компания имеет много событий события принадлежит к пространству событий

теперь я хочу, чтобы получить все события из компании, где event_space имеет виртуальный атрибут установлен верно

c = Comapny.first 
c.events.joins(:event_space).where("event_space.virtual = true") 

я делаю что-то неправильно, потому что у меня есть

ActiveRecord :: StatementInvalid: SQLite3 :: SQLException: нет такого столбца: event_space.virtual: SELECT "events". * FROM "events" INNER JOIN "event_spaces" ON "event_spaces". "Id" = "events". "Event_space_id" WHERE " «. "события company_id"= 2 AND (event_space.virtual = истина)

+1

попробовать' event_spaces.virtual = true' (множественное число) – Alireza

+0

Почему вы не делаете 'Events.where (comapny_id: c.id) .where (" event_space.virtual = true ") – MZaragoza

+0

@Alireza не работает, такая же ошибка – maki

ответ

1

Вы можете изменить свой пункт where следующим образом, чтобы получить это право:

c.events.joins(:event_space).where(event_spaces: {virtual: true}) 
Смежные вопросы