Я думаю, что ваша ошибка здесь:
Software.includes(:users).where(user: {subscribed: true})
includes
должно отражать ассоциацию, в данном случае единственное user
.Это то, что вызывает ошибку, которую вы видите.
Кроме того, это распространенная ошибка, но для ассоциации в предложении where
необходимо использовать имя таблицы.
Попробуйте это:
Software.includes(:user).where(users: { subscribed: true })
Предполагается, что вы будете использовать информацию о user
в другом месте, то есть в вашем представлении.Если вам не нужен доступ к записи, просто проверьте user
для запроса, вы можете переключить includes
на joins
, чтобы повысить эффективность запроса:
Software.joins(:user).where(users: { subscribed: true })
Это отдельныйтему, но есть хорошее прочтение здесь .