我是新来的rails,我想导出字典(字符串)。 目前我使用这段代码Rails:CSV数组到字符串(转换)
Competency.order(:competencies).map(&:competencies).uniq!.join(", ")
要生成:
Build a cage!, Build tha pizza, Demonstrated ability in flying, Demonstrated ability in pizza baking
我想这个导出为CSV格式,但问题是,它是一个数组。我想创建单独的字符串(逗号分隔)并在不同的行上显示每个字符串。当将其导出到csv时,目前所有内容都显示在一行上。
任何线索如何做到这一点?我创建了一个数据数组,因为有很多重复的数据,这段代码将过滤所有重复的数据。
在我的控制器:
format.csv { render Competency.order(:competencies).map(&:competencies).uniq!.join(", ") }
我希望有人可以帮助我,非常感谢。
编辑:
理想我想获取所有能力和有没有重复的输出,这是我的控制器:
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
在一个视图文件
通常你会怎么做:
<div>
<% @posts.each do |competency| %>
<%= competency.competencies %>
<% end %>
</div>
这将生成所有能力的列表,但也包括重复项。我的解决方案是创建一个数组。但是,这导致出口到csv时出现问题(因为我需要每个输出在不同的行/行上。所以我的问题是,如何生成所有“能力”列表而不重复?
我不完全了解你的问题,但你几乎可以肯定除非你想要'nil'的情况,否则我们希望将'uniq!'更改为'uniq'。 –
您尚未提供足够的信息以获得真实答案。请编辑你的问题,并包含示例输入(即使是'p Competency.first'也会有帮助),以及你想要的输出示例。 –
感谢AndrewHubbs的建议。 @MarkThomas,我编辑了我的问题。 – user1795503