名前付きスコープに問題があります。複数の値を持つ名前付きスコープ
def self.by_status(status)
arr = status.split(',').map{ |s| s }
logger.debug "RESULT: #{arr.inspect}"
where(status: arr)
end
私はそれが必要ながら、これは、何も結果を返しません["New", "Open"]
=複数の値、ARRの結果でこのスコープを呼び出します。コンソールでこのコマンドを試してみると: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_と呼ばれます。理由を知るには、[this](http://blog.plataformatec.com.br/2013/02/active-record-scopes-vs-class-methods/)をお読みください。 –
私の電話で私のポストを更新します。コンテキストは、私のデータテーブルのパラメータをコントローラに渡してから私のモデルに渡します。私はcsvにエクスポートするためにパラメータを使用しようとしています。 – stoerebink