Я сделал выбор, используя активную запись с большим количеством подключений. Это привело к дублированию значений. После выберите функция есть отличная функция со значением: id. Но это не сработало!ActiveRecord не работает
Вот код:
def join_query
<<-SQL
LEFT JOIN orders on orders.purchase_id = purchases.id
LEFT JOIN products on products.id = orders.complete_product_id
SQL
end
def select_query
<<-SQL
purchases.*,
products.reference_code as products_reference_code
SQL
end
result = Purchase.joins(join_query)
.select(select_query)
.distinct(:id)
Конечно, ни различны! или uniq функции работали. отличный! ответил (а) сообщение "ActiveRecord :: ImmutableRelation", что я не знаю, что это значит.
Чтобы исправить это, я сделал взлом, преобразовывая объект ActiveRecord_Relation в массив, и я использовал функцию uniq uniq Ruby.
Что здесь происходит?
'ImmutableRelation' означает, что ActiveRecord [уже принес запрос] (http://api.rubyonrails.org/classes/ActiveRecord/ImmutableRelation.html). Попробуйте положить свои «соединения» в конце. – sjagr
Какие СУБД вы используете? Что вы видите, если не используете '.distinct (: id)'? Я сомневаюсь, что использование '.distinct (: id)' является проблемой, поскольку оно пытается выбрать записи, которые извлекаются. –