ActiveRecord — несколько условий из нескольких таблиц

#ruby-on-rails #activerecord #ruby-on-rails-4

#ruby-on-rails #activerecord #ruby-on-rails-4

Вопрос:

Я обновляю приложение 3.2 Rails (до Rails 4.1) и удаляю драгоценный камень Squeel из-за отсутствия его обслуживания.

Вот пример:

 incomplete = current_user.roles.where { (name == role.to_s) amp; (users_roles.status != 'completed') }.any?
 

Таким образом, у меня есть несколько условий из нескольких таблиц, одно из которых является отрицательным. Я хотел бы, чтобы ваш подход к этому

Заранее спасибо 🙂

Ответ №1:

Это должно быть сделано следующим образом…

 incomplete = current_user.roles.where(name: role.to_s).where.not(user_roles: { status: 'complete'}).any?
 

Комментарии:

1. Потрясающий Шон, та часть, в которой статус помещается в хэш, была тем, чего я не знал