我在命名範圍上遇到了一些麻煩。具有多個值的命名範圍
def self.by_status(status)
arr = status.split(',').map{ |s| s }
logger.debug "RESULT: #{arr.inspect}"
where(status: arr)
end
當我把這個範圍有不止一個值,編曲的結果= ["New", "Open"]
這不返回任何結果,而它應該。如果我在控制檯中試用這個命令:Shipment.where(status: ['New', 'Open'])
我得到了我期待的結果。
我在這裏錯過了什麼嗎?
編輯(添加類方法的調用):
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
好吧,你能告訴你如何在你的應用程序中調用類方法'by_status'。順便說一下你所稱的_class method_,而不是_named的scope_。閱讀[this](http://blog.plataformatec.com.br/2013/02/active-record-scopes-vs-class-methods/)知道爲什麼。 –
我會用我的電話更新我的帖子。上下文是,我將參數從我的數據表傳遞到我的控制器,然後傳遞給我的模型。我試圖使用這些參數導出到csv。 – stoerebink