javascript - 如何在 Rails 中访问 c​​sv 文件

标签 javascript ruby-on-rails ruby csv

我正在开发一个 Ruby on Rails 应用程序,我需要将一些 csv 格式的数据加载到 JS 脚本中进行处理。

我的csv文件位于app/assets中,我的js文件是app/assets/javascripts,我使用它在assets.rb中处理:

Rails.application.config.assets.precompile += %w( myscript.js ) 

在 `myscript.js 中,我对 csv 文件进行 ajax 调用:

$.ajax({
    url: "assets/mycsvfile.csv",
    async: true,
    success: function (csvd) {
        // processing csv data
        },
    error: function(e) {
        var errorMsg = e? (e.status + ' ' + e.statusText) : "";
        console.log(errorMsg);
        },
    dataType: "text"
    });

我还是明白

404 file not found

如何加载该 csv 文件?

谢谢

最佳答案

将文件 mycsvfile.csv 放入 Rails 应用的“public”目录中。

然后,您将能够直接从 YOURDOMAIN/mycsvfile.csv 请求加载它。

编辑:

由于您不想使用公共(public) URL,因此必须使用 HTTP 服务器身份验证或 Rails Server 来处理文件下载。

要让 Rails 应用处理文件下载,请使用 send_file 命令。 在提供静态文件之前,您将能够在 Controller 中检查正确的用户权限。

示例:

class ClientsController < ApplicationController
    # Stream a file that has already been generated and stored on disk.
    def download_pdf
        client = Client.find(params[:id])
        send_file("#{Rails.root}/files/clients/#{client.id}.pdf",
          filename: "#{client.name}.pdf",
          type: "application/pdf")
    end
end

来源:http://guides.rubyonrails.org/action_controller_overview.html#sending-files

关于javascript - 如何在 Rails 中访问 c​​sv 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42515249/

相关文章:

ruby-on-rails - 从 Ruby on Rails 3.2.6 中 Paperclip 生成的文件中删除问号

ruby - 使用 ruby​​zip 时权限被拒绝

ruby-on-rails - ruby 范围 : operators in case statement

javascript - Bootstrap 4 工具提示未居中

javascript - Canvas 摆动动画 - Canvas 平移

javascript - 改进这个 "next","previous"脚本,使其可以上升到至少 3

javascript - 各种日期的动态倒计时时钟 - 纯 Javascript

ruby-on-rails - capybara 不会等待 factory_girl 完成

css - 为什么我的 Bootstrap clearfix 在我的 Rails 集合中中断?

ruby - 如何捕获 rspec 示例、通过、失败计数到变量并返回到控制台?