我是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时,所有内容都显示在一行上。
你知道怎么做吗我创建了一个数据数组,因为有很多重复的数据,而这段代码正在过滤掉所有重复的数据。
在我的控制器中:
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时产生问题(因为我需要不同行/行上的每个输出)。所以,我的问题是,我如何生成一个没有重复的所有“能力”的列表?
最佳答案
行不能用逗号分隔他们很可能是新线路的终端如果你想把它们放在不同的行上,你可以尝试用新行代替逗号来连接它们。
关于ruby - Rails:CSV数组转换为字符串(转换),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13203470/