Nic*_*ick 5 ruby-on-rails ransack
我正在尝试将Ransack(Railscast)结果列表导出为CSV文件(Railcast).但是,它会持续导出所有对象,而不是Ransack搜索返回的结果.谁能告诉我哪里出错了?
在Reports控制器中,我尝试传递@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
Run Code Online (Sandbox Code Playgroud)
然后是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
Run Code Online (Sandbox Code Playgroud)
然而,每次,我都会得到未经过滤的current_user.bookings列表.为什么?
小智 12
要仅将筛选结果导出为csv,您应确保搜索参数包含在您调用以生成csv的URL中.
因此,如果要导出在html页面上看到的结果,则应调用:
reports_path(params.merge(format: 'csv')
| 归档时间: |
|
| 查看次数: |
2812 次 |
| 最近记录: |