J'essaie de trouver la meilleure approche plus que tout par cette question. J'ai deux modèles:Comment conserver les données d'une table dans une autre en étant mis à jour sans association dans Ruby On Rails
Letter.rb
class Letter < ApplicationRecord
has_many :trackings,dependent: :destroy
end
Colonnes de lettre: sous, titre
Tracking.rb
class Tracking < ApplicationRecord
belongs_to :letter
end
Colonnes de suivi: nombre, Date
J'ai une table comme celui-ci en vue contenant ces colonnes:
traques
Tracking_id/number/date/letter_id/sub/title
Je veux chercher dans traques via Arel et retourner les dossiers de traques comme les résultats de la recherche.La recherche est multiple, par exemple la première recherche basée sur le nombre et ensuite rechercher les résultats à nouveau en fonction du titre, mais le problème est que je ne peux pas rechercher les associations.
J'ai une solution. Je peux conserver les données des lettres sous forme de nouvelles colonnes dans Trackings, mais si je mets à jour la lettre ailleurs, ces données ne seront pas mises à jour, donc je peux exécuter un travail pour mettre à jour toutes les données de lettres dans les Trackings existants. Je veux savoir qu'il y a une meilleure idée pour couvrir ce problème? ou cette solution suffit?
Merci d'avance.
Votre classe 'Tracking' ne semble pas avoir une référence de table à' Letter' ne devrait-il pas y avoir une colonne 'letter_id' dans la table pour référence?Vous ne savez pas non plus pourquoi vous avez besoin de 'Arel' car la logique de recherche n'est pas très complexe (et croyez-moi je suis un grand défenseur de' Arel' quand il est appelé) – engineersmnky
@engineersmnky Parce que c'est une recherche multiple compliquée action qui est inévitable d'utiliser Arel. La table de suivi contient letter_id. –