我在这里看到了许多有用的建议,但到目前为止还没能解决我的问题。我正在创建一个redmine插件(ruby on rails),我有一个按钮,可以将db导出到CSV文件中。那部分工作正常。
我的问题是csv文件中的列名未被翻译似乎没有通过调用human_attribute_name
来改变。任何人都能指出我出错的地方并帮我纠正吗?
我主要遵循本教程:http://railscasts.com/episodes/362-exporting-csv-and-excel?view=asciicast
应用程序/模型/ person.rb
def self.to_csv(options={})
CSV.generate(options) do |csv|
csv << User.attribute_names.map {|c| User.human_attribute_name(c)}
# Could I instead use:
# csv << User.human_attribute_names
User.all.each do |user|
csv << user.attributes.values
end
end
end
配置/区域设置/ en.yml
en:
activerecord:
attributes:
user:
col1: "Column 1"
col2: "Column 2"
答案 0 :(得分:0)
找到这个似乎有用的解决方案:
应用程序/模型/ user.rb
def self.to_csv(options={})
CSV.generate(options) do |csv|
@cols = User.attribute_names #[1..-1] to remove first column from output
csv << @cols.map { |c| I18t.t c, scope: [:activerecord, :attributes, :user] }
User.all.each do |user|
csv << user.attributes.value_at(*@cols)
end
end
end