Ruby on Rails-将用户数据导出到CSV-按钮

时间:2018-07-27 23:43:23

标签: ruby-on-rails export-to-csv

由于我最终使用的是csv方法而不是json方法,所以我认为如果有一天其他人可能遇到相同的问题,更改问题名称并删除带有json的部分可能是个好主意。

更新:我尝试使用this作为导出数据的方法。

在我的控制器中,我有以下内容:

def profile
@user = User.find(params[:id])
@user_posts = @user.posts.order('created_at DESC')

respond_to do |format|
  format.html
  format.csv { send_data @user.csv, filename: "userinfo-#{Date.today}.csv" }
end

结束

在我看来:

<p><%= link_to("Generate Report", user_path(@user, format: :csv), class: "btn btn-success",) %></p>

在我的user.rb中:

def csv
    CSV.generate do |csv|
      csv << column_names
      all.each do |item|
        csv << item.attributes.values_at(*column_names)
      end
    end
  end

更新2:设法自己修复它,我在控制器中使用了错误的csv方法。替换为以下内容:

def csv
    CSV.generate do |csv|
      csv << %w{ user_id user_username user_email }
      csv << [ self.id, self.username, self.email]
    end
  end

像魅力一样工作。

最诚挚的问候

0 个答案:

没有答案