コントローラ内にある1つのメソッドの中において、
記述が重複している箇所があるため、それをもっといい感じに整理してリファクタリングしたいです。
現在のコントローラがこちら
class UserController def download limit_number = 1000 if params[:start].present? && params[:end].present? start_date = params[:start].to_time end_date = params[:end].to_time users = User.where(created_at: start_date..end_date).limit(limit_number).order("id DESC").pluck(:id,:gendar,:birth,:country,:created_at) elsif params[:start].present? start_date = params[:start].to_time users = User.where("created_at >= ?", start_date).limit(limit_number).order("id DESC").pluck(:id,:gendar,:birth,:country,:created_at) elsif params[:end].present? end_date = params[:end].to_time users = User.where("created_at <= ?", end_date).limit(limit_number).order("id DESC").pluck:id,:gendar,:birth,:country,:created_at) else users = User.limit(limit_number).order("id DESC").pluck(:id,:gendar,:birth,:country,:created_at) end columns = ["ID","Gendar","Birthday","Country","Time"] data = CSV.generate do |csv| csv << columns users.each do |u| csv << [ u[0], u[1], u[2], u[3], u[4] ] end end send_data data, type: "text/csv; charset=shift_jis", filiname:"users-#{Time.now.to_date.to_s}.csv" end end
こんな感じで書いております。
where句はまだいいのですが、
.limit(limit_number).order("id DESC").pluck(:id,:gendar,:birth,:country,:created_at)
この箇所が全部で出しているのでもう少し整理できないかと思っています。
どなたかご教授ください。
よろしくお願いいたします!
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。