J'ai réduit plusieurs conditions en utilisant la méthode where, donc je vais les résumer.
Je souhaite obtenir une information sur le modèle de développeur créé juste avant le moment où le modèle de produit a été créé.
Créer un modèle de produit et un développeur. Les deux modèles ne sont pas associés. (Osez ici) Le modèle Developer contient des informations (numéro_produit_développé) sur le type de produit fabriqué. Le produit a un numéro de produit et ces deux valeurs sont égales. (Si c'est le cas, associons-le, mais cette fois, nous utiliserons cette condition.) Je souhaite obtenir la valeur du développeur créé juste avant la création du produit à partir de plusieurs développeurs qui ont créé le même produit.
Mettons d'abord le code réel.
product = Product.find(params[:id])
@Developer = Developer.where(developed_product_number: product.id).where('created_at < ?', product).order(created_at: :desc).limit(1)
C'est comme ça. Je vais expliquer
product = Product.find(params[:id])
Obtenez l'ID du produit cible et attribuez-le au produit variable. Ici, entrez la valeur qui a été réduite en ajoutant des conditions à la variable @Developer.
@Developer = Developer.where(developed_product_number: product.id).where('created_at < ?', product).order(created_at: :desc).limit(1)
Divisez partiellement.
@Developer = Developer.where(developed_product_number: product.number)
Ici, l'identifiant du produit variable obtenu précédemment est obtenu.
Puis affinez les valeurs.
where('created_at < ?', product).order(created_at: :desc).limit(1)
Ici, nous avons acquis les informations de plusieurs développeurs créés avant le moment où le produit a été créé et les informations du premier développeur en comptant dans l'ordre décroissant. Cela fait assez longtemps, donc le code ici doit être séparé en étendues et ainsi de suite.
Recommended Posts