Ich habe Probleme mit meinem benannten Bereich.Benannter Bereich mit mehreren Werten
def self.by_status(status)
arr = status.split(',').map{ |s| s }
logger.debug "RESULT: #{arr.inspect}"
where(status: arr)
end
Als ich nenne dies Umfang mit mehr als einem Wert, das Ergebnis arr = ["New", "Open"]
Dies keine Ergebnisse zurückgibt, während es sollte. Wenn ich diesen Befehl in der Konsole versuche: Shipment.where(status: ['New', 'Open'])
bekomme ich die Ergebnisse, die ich erwarte.
Fehle ich hier etwas?
Edit (hinzugefügt, um den Aufruf der Klassenmethode):
def self.to_csv(options = {}, vendor_id, status)
CSV.generate(options) do |csv|
csv << column_names
if !vendor_id.blank? && status.blank?
by_vendor_id(vendor_id).each do |product|
csv << product.attributes.values_at(*column_names)
end
elsif !vendor_id.blank? && !status.blank?
by_vendor_id(vendor_id).by_status(status).each do |product|
csv << product.attributes.values_at(*column_names)
end
elsif vendor_id.blank? && !status.blank?
logger.debug "by_status result: #{by_status(status).inspect}"
by_status(status).each do |product|
csv << product.attributes.values_at(*column_names)
end
else
all.each do |product|
csv << product.attributes.values_at(*column_names)
end
end
end
end
Ok, kannst du zeigen, wie du die Klassenmethode 'by_status' in deiner App aufruft. Übrigens, was Sie haben, heißt _class-Methode_, nicht ein _named-Bereich_. Lesen Sie [this] (http://blog.plataformatec.com.br/2013/02/active-record-scopes-vs-class-methods/), um zu wissen, warum. –
Ich werde meinen Post mit meinem Anruf aktualisieren. Der Kontext ist, ich übergebe die Parameter von meiner Datentabelle zu meinem Prüfer und dann zu meinem Modell. Ich versuche, die Parameter zu verwenden, um nach csv zu exportieren. – stoerebink