저는 판매 인이 판매 할 품목을 나열 할 수 있도록 마켓 플레이스 앱을 구축 중입니다. 판매자가 자신의 목록을 다운로드 할 수 있도록 판매자별로 CSV를 다운로드하려고합니다.레일 4 CSV로 다운로드
다음 코드의 내용은 railscast입니다. railscasts 코드를 그대로 작동하도록했습니다. 내 모델의 모든 데이터를 csv로 다운로드합니다. 그러나 판매자 필터를 쿼리에 추가하면 필터가 적용되지 않습니다. listings_controller에서
:
def index
@listings = Listing.not_expired.order("created_at DESC")
respond_to do |format|
format.html
format.csv { send_data @listings.to_csv }
end
end
def seller
@listings = Listing.where(user: current_user).order("created_at DESC")
respond_to do |format|
format.html
format.csv { send_data @listings.seller_csv }
end
end
listing.rb에서 :
def self.to_csv
CSV.generate do |csv|
csv << column_names
all.each do |listing|
csv << listing.attributes.values_at(*column_names)
end
end
end
def self.seller_csv
CSV.generate do |csv|
csv << column_names
where(user: current_user).each do |listing|
csv << listing.attributes.values_at(*column_names)
end
end
end
to_csv 방법은 벌금과 다운로드 모든 명부 작성을 작동합니다. 그러나 seller_csv 메소드는 모든 목록을 다운로드합니다. current_user로 필터링해야합니다. 내가 뭘 놓치고 있니?