2014-11-16 3 views
0

Я стараюсь сделать запрос, который показывает друзей пользователя, которые имеют действия в городе. У переменной @friends есть друзья пользователя, и я хочу объединиться с действиями и местами, потому что я хочу фильтровать результаты по городу. У учетной записи (пользователя) есть много видов деятельности, и она также имеет много мест, хотя действия. У меня следующее сообщение об ошибке:Rails Join Query Error

SQLite3::SQLException: no such column: accounts.city: 

    def show 
     @friends = Account.find(current_account.id).active_friends 
     @nearbyFriends = @friends.joins(:activities,:places).where(:city => @place.city).group(:account_id) 
     end 

ответ

1

Try:

def show 
    # ... 
    @nearbyFriends = @friends.joins(:activities,:places).where(:places => { :city => @place.city }).group(:account_id) 
end 

При использовании joins, любое поле в where пункте должно содержать имя таблицы оно происходит от. То же самое относится к group (если таблица друзей не содержит account_id).

+0

SQLite3 :: SQLException: неоднозначное имя столбца: account_id – MMrj

+0

В какой из ваших таблиц содержится 'account_id'? – blelump

+0

таблица действий – MMrj