我是新來的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