J'ai une application qui enregistre les appels. Chaque appel peut avoir plusieurs unités associées. Une partie de mon application a une section de rapports qui effectue simplement une requête sur le modèle d'appel pour différents critères. J'ai trouvé comment écrire des portées qui font ce que je veux et les enchaîner aux résultats de ma fonctionnalité de recherche de rapports. Mais je ne peux pas comprendre comment rechercher par "unité". Voici des extraits pertinents de mon code:Portée avec association et ActiveRecord
Call.rb
has_many :call_units
has_many :units, through: :call_units
#Report search logic
def self.report(search)
search ||= { type: "all" }
# Determine which scope to search by
results = case search[:type]
when "open"
open_status
when "canceled"
cancel
when "closed"
closed
when "waitreturn"
waitreturn
when "wheelchair"
wheelchair
else
scoped
end
#Search results by unit name, this is what I need help with. Scope or express otherwise?
results = results. ??????
results = results.by_service_level(search[:service_level]) if search[:service_level].present?
results = results.from_facility(search[:transferred_from]) if search[:transferred_from].present?
results = results.to_facility(search[:transferred_to]) if search[:transferred_to].present?
# If searching with BOTH a start and end date
if search[:start_date].present? && search[:end_date].present?
results = results.search_between(Date.parse(search[:start_date]), Date.parse(search[:end_date]))
# If search with any other date parameters (including none)
else
results = results.search_by_start_date(Date.parse(search[:start_date])) if search[:start_date].present?
results = results.search_by_end_date(Date.parse(search[:end_date])) if search[:end_date].present?
end
results
end
Depuis que je suis une association pour les unités déjà, je ne sais pas si je dois faire un champ pour les unités d'une façon ou d'exprimer les résultats en quelque sorte dans la variable des résultats dans mon logique de recherche.
autant de code, mais je n'ai toujours aucune idée de ce que vous demandez. Que devrait faire 'by_unit_name'? pourquoi affichez-vous tout ce qui n'a rien à faire de ce que vous voulez vraiment? S'il vous plaît faites un exemple minimal d'où votre problème réside et publiez-le ici. – phoet
Je cherche à créer une variable de résultat qui me permettra d'effectuer une recherche par nom d'unité. Ainsi, dans ma vue de rapport, je peux sélectionner un nom d'unité et filtrer les résultats d'appel par nom d'unité. Je ne suis pas vraiment sûr si j'ai besoin d'écrire une portée pour le faire ou si je peux exprimer cela dans une variable de résultats. J'ai enlevé le code supplémentaire et j'ai commenté où j'ai besoin d'aide. – nulltek