为AXLSX重命名Rails参数

时间:2017-11-03 22:56:17

标签: ruby-on-rails ruby axlsx

我从前端应用程序获取动态数组字段,以确定我的工作簿将具有哪些内容。其中两个字段具有相同的值,但我想要不同的列标题。所以我已将此添加到我的方法中:

    fields = params[:fields]
    fields[0].replace('new string')
    sheet.add_row fields
    exportees.each do |event_session_registration|
      row_array = params[:fields].map { |field| event_session_registration.try(field) }
      row_array.map! { |value| value == true ? 'Yes' : value }
      row_array.map! { |value| value == false ? 'No' : value }
      sheet.add_row row_array
    end

Fields[0]是两个相同字符串中的第一个。

现在的问题是,在我的.each循环内,params[:fields]现在与我更新的fields变量具有相同的内容。我尝试过使用.dup,但这并没有使我的参数保持不变。我可以通过执行以下操作来解决此问题:

    fields = params[:fields]
    fields[0].replace('new string')
    sheet.add_row fields
    fields[0].replace('original string')

但是,我很好奇是否有更简洁的方法来复制我的参数,以便打印不同的列标题。提前谢谢!

1 个答案:

答案 0 :(得分:0)

试试这个:

parameters = params.to_h
fields = parameters[:fields]