Rails は初めてで、(文字列の) 辞書をエクスポートしたいと考えています。現時点では、このコードを使用しています
Competency.order(:competencies).map(&:competencies).uniq!.join(", ")
引き起こす:
Build a cage!, Build tha pizza, Demonstrated ability in flying, Demonstrated ability in pizza baking
これをcsvにエクスポートしたいのですが、問題はそれが1つの配列であることです。個別の文字列 (カンマ区切り) を作成し、各文字列を別の行に表示したいと思います。現在、これを csv にエクスポートすると、すべてが 1 行に表示されます。
これを行う方法の手がかりはありますか?多くの重複データがあり、このコードはすべての重複を除外しているため、データの配列を作成しました。
私のコントローラーで:
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にエクスポートするときに問題を引き起こします(すべての出力を別の行/行に必要とするためです。私の質問は、重複なしですべての「能力」のリストを生成するにはどうすればよいですか?