我正在尝试将Ransack(Railscast)结果列表导出到CSV文件(Railcast)。但是,它将继续导出所有对象,而不是Ransack搜索返回的结果。谁能告诉我我要去哪里错了?
在Reports Controller 中,我尝试同时传递@bookings和@ search.result:
def index
@search = current_user.bookings.search(params[:q])
@bookings = @search.result
@search.build_condition
respond_to do |format|
format.html
format.csv { render text: Booking.to_csv(@bookings) }\
end
end
然后,Booking to_csv方法:
def self.to_csv list
CSV.generate do |csv|
csv << column_names
list.each do |booking|
csv << booking.attributes.values_at(*column_names)
end
end
end
但是每次,我都会得到未过滤的current_user.bookings列表。为什么?
最佳答案
要将仅过滤后的结果导出为csv,应确保搜索参数包含在您要生成csv的url中。
因此,如果要导出在html页面上看到的结果,则应调用:reports_path(params.merge(format: 'csv')
关于ruby-on-rails - Ransack导出结果到CSV,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16987242/