重命名AXLSX的Rails参数
问题描述:
我从我的前端应用程序中获取动态数组字段,以确定我的工作簿将具有哪些内容。其中两个字段具有相同的值,但我需要不同的列标题。所以,我已经加入这个我的方法:重命名AXLSX的Rails参数
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')
不过,我很好奇,如果有重复我的params用于在打印不同的列标题的缘故一个更清洁的方式。提前致谢!
答
试试这个:
parameters = params.to_h
fields = parameters[:fields]
'PARAMS [:字段]'只是一个简单的数组,你不能叫'.to_h'上。我不确定将'fields'变成散列可以减少这个问题。 –
params是_ActionController :: Parameters_的一个实例,因为所有的对象都有一个object_id,如果你赋值_fields = params [:fields] _这个赋值是通过引用的,而且_object_id_仍然是相同的,所以,当你将params转换为哈希对象是完全不同的,所以你可以做一些像_parameters = params.to_h_和_fields = parameters [:fields] _我编辑我的建议上面 – TolerantX