如何使用 Axlsx gem 在 rails 中导出 excel 时检查条件
how to check condition while exporting excel in rails with Axlsx gem
project
有很多task
。
task
具有整数字段 0,1 和 2 的属性 status
现在我想为 0 打印 not-completed
,为 1 打印 completed
,为 2 打印 not-started
。
目前我可以打印整数来代替文本。我试过 if condition
但语法错误
download.xlsx.axlsx
@project.tasks.each do |task|
sheet.add_row [task.task_name, task.planned_end_date, task.status]
end
您可以为任务对象编写一个实例方法,它将 return 需要 status string
取决于 status
值。
# app/models/task.rb
def display_status
case status
when 0
"not-completed"
when 1
"completed"
when 2
"not-started"
else
""
end
end
然后在您的 .xlsx
视图模板中使用此方法。
# download.xlsx.axlsx
@project.tasks.each do |task|
sheet.add_row [task.task_name, task.planned_end_date, task.display_status]
end
希望这对您有用。谢谢:-)
您可以在任务模型中使用枚举作为状态属性
# app/models/task.rb
enum status: %i[not-completed completed not-started]
这会将状态值 0 关联到 not-completed,1 关联到已完成,2 关联到 not-started。
现在,如果您访问 task.status,它将仅输出字符串值。如果您需要整数值,则必须使用 Task.statuses['completed'].
你还会有一些额外的方法,比如not-completed?,完成了吗? not-started?这将 return 真或假取决于状态属性的值。
请参考以下链接了解更多详情
https://api.rubyonrails.org/v5.2.3/classes/ActiveRecord/Enum.html
https://naturaily.com/blog/ruby-on-rails-enum
project
有很多task
。
task
具有整数字段 0,1 和 2 的属性 status
现在我想为 0 打印 not-completed
,为 1 打印 completed
,为 2 打印 not-started
。
目前我可以打印整数来代替文本。我试过 if condition
但语法错误
download.xlsx.axlsx
@project.tasks.each do |task|
sheet.add_row [task.task_name, task.planned_end_date, task.status]
end
您可以为任务对象编写一个实例方法,它将 return 需要 status string
取决于 status
值。
# app/models/task.rb
def display_status
case status
when 0
"not-completed"
when 1
"completed"
when 2
"not-started"
else
""
end
end
然后在您的 .xlsx
视图模板中使用此方法。
# download.xlsx.axlsx
@project.tasks.each do |task|
sheet.add_row [task.task_name, task.planned_end_date, task.display_status]
end
希望这对您有用。谢谢:-)
您可以在任务模型中使用枚举作为状态属性
# app/models/task.rb
enum status: %i[not-completed completed not-started]
这会将状态值 0 关联到 not-completed,1 关联到已完成,2 关联到 not-started。
现在,如果您访问 task.status,它将仅输出字符串值。如果您需要整数值,则必须使用 Task.statuses['completed'].
你还会有一些额外的方法,比如not-completed?,完成了吗? not-started?这将 return 真或假取决于状态属性的值。
请参考以下链接了解更多详情
https://api.rubyonrails.org/v5.2.3/classes/ActiveRecord/Enum.html https://naturaily.com/blog/ruby-on-rails-enum