Donc, je suis actuellement en utilisant la commande suivante pour joindre et interroger mes tables - la recherche d'un OrderItem parmi mes Ordres où le orderable_id = applicable_product_item_id le TOTAL_PRICE = 0 et le buyer_id = current_userComment interroger une relation ActiveRecord pour le champ created_by
Order.joins(:items)
.where(order_items: {id: OrderItem.where(orderable_id: applicable_product_item_id)})
.where(total_price: 0)
.where(buyer_id: current_user)
tout cela fonctionne très bien, mais maintenant je veux interroger plus loin et je veux savoir si l'ordre qu'il a trouvé a un created_at date>searchable_created_by_date
J'ai essayé d'utiliser un autre .où dans la requête, ainsi que sélection de la .first dans le tableau et l'interrogation en outre que par exemple la requête = above_query.first
puis
query.where("created_at > ?", searchable_created_by_date)
mais je reçois
Undefined method where for #<Order:0x007fbc8d8edf90>
Lorsque vous faites 'query = above_query.first', vous n'avez plus de requête chaînable. C'est pourquoi vous obtenez l'erreur 'no method'. Donc, c'est un non-go. Qu'avez-vous obtenu lorsque vous avez simplement essayé d'enchaîner sur une autre déclaration '.where'? – jvillian
pouvez-vous montrer où la requête est initialisée? – krishnar
@jvillian quand je chaîne le. Où je reçois la référence de la colonne "created_at" est ambigu –