2016-12-02 9 views
2

Мне нужно искать книги, пользователи имеют книги через авторов, которые должны иметь возможность искать только свои книги, не показывая другие книги пользователей.Найти элементы пользователей через объединение, используя Elasticsearch с Searchkick on Rails?

книги модели

has_many :authors 
has_many :users, through: :authors 

Я пытался искать, как описано here, но это не сработало.

@Books = Book.search "*", where: { user_id: current_user.id} 

Я считаю, что это не работает, потому что books модель не имеет user_id

ответ

1

Есть, вероятно, несколько способов, вы могли бы сделать это. Вот один: Поиск по индексу книг в searchkick, но только вернуть книги, идентификатор соответствует одному из пользователей book_ids

модели пользователя

# assuming you have: 
has_many :books, through: :authors 

в контроллере

# change your where clause to filter based on book id 
@Books = Book.search "*", where: { id: current_user.book_ids} 

 Смежные вопросы

  • Нет связанных вопросов^_^