ruby - 导轨 : CSV Array to string (convert)

标签 ruby arrays ruby-on-rails-3 csv export-to-csv

我是 Rails 新手,我想导出一本(字符串)字典。 目前我正在使用这段代码

    Competency.order(:competencies).map(&:competencies).uniq!.join(", ")

生成:

   Build a cage!, Build tha pizza, Demonstrated ability in flying, Demonstrated ability in pizza baking

我想将其导出到 csv,但问题是它是一个数组。我想创建单独的字符串(逗号分隔)并将每个字符串显示在不同的行上。目前,将其导出到 csv 时,所有内容都显示在一行上。

知道如何做到这一点吗?我创建了一个数据数组,因为有很多重复数据,而这段代码正在过滤掉所有重复数据。

在我的 Controller 中:

   format.csv { render Competency.order(:competencies).map(&:competencies).uniq!.join(", ") }

希望大家能够帮助我,不胜感激。

编辑:

理想情况下,我想获取所有能力并获得没有重复的输出,这是我的 Controller :

    def dictionary
      @competencies = Competency.all

        respond_to do |format|
        format.html { render html: positions_dictionary_path }
        format.csv { render Competency.order(:competencies).map(&:competencies).uniq!.join(", ") }
        format.xls { send_data Competency.order(:competencies).map(&:competencies).uniq!.join(", ") }

      end
    end

通常在 View 文件中您会执行以下操作:

      <div>
        <% @posts.each do |competency| %>
          <%= competency.competencies %>
        <% end %>
      </div>

这会生成所有能力的列表,但也包括重复项。我的解决方案是创建一个数组。然而,这在导出到 csv 时会产生问题(因为我需要将每个输出放在不同的行/行上。所以我的问题是,如何生成所有“能力”的列表而不重复?

最佳答案

行不会以逗号分隔。他们可能是新线路终止的。如果您希望将它们放在单独的行上,您应该尝试使用新行而不是逗号将它们连接起来。

关于ruby - 导轨 : CSV Array to string (convert),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13203470/

相关文章:

ruby - 在haml中渲染部分并将变量传递给它

ruby - 在 Sinatra 中,我可以在路由和 View 中使用变量吗?

ruby-on-rails - 如何验证关联是否有效

ruby - Ruby 中可用的网页抓取 gem /工具

java - 如何将不均匀的二维数组连接成一维数组(java)

c++ - 将显式双数组定义编译为 DLL 中的二进制资源 - 有更好的方法吗?

ruby - 为 6 :Fixnum (Rails) in a view with jQuery + ERB? 获取未定义的方法 `gsub'

javascript - 从嵌套数组中删除对象

ruby - ROR 代码发送许多邮件

ruby-on-rails-3 - Rails 3 路由 : Using 2 dynamic segments in path for one model