Найти записи, связанные с другими записями в контроллере (ruby on rails) - PullRequest
1 голос
/ 01 ноября 2019

Я собираю список пользователей и сохраняю в @users.

Теперь мне нужно найти свойства, относящиеся только к этому списку пользователей, к которым я обращался.

 if params[:company].present?
      @users = User.where(parent_id: params[:company]).or(User.where(id: params[:company]))
      #@properties = @properties.where(user_id: params[:company])
    end

В основном я хотел бы включить @users внутри @properties.where()

Мне нужно получить каждое свойство, имеющее user_id в моем массиве @users

edit:

Я только что сделал следующее, что дает мне результат, однако, я уверен, что есть намного лучший способ сделать это через activerecord:

      ids = []
      @users.each do |user|
        ids.push(user.id)
      end
      @properties = @properties.where(user_id: ids)

1 Ответ

1 голос
/ 01 ноября 2019
@properties.where(user_id: @users.ids)

Это должно работать. Он возьмет идентификатор пользовательских идентификаторов и выполнит фильтрацию с помощью предложения IN.

Возможно, добавив ваши модели и их отношения, мы сможем придумать что-нибудь получше.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...