1
我從我的前端應用程序中獲取動態數組字段,以確定我的工作簿將具有哪些內容。其中兩個字段具有相同的值,但我需要不同的列標題。所以,我已經加入這個我的方法:重命名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用於在打印不同的列標題的緣故一個更清潔的方式。提前致謝!
'PARAMS [:字段]'只是一個簡單的數組,你不能叫'.to_h'上。我不確定將'fields'變成散列可以減少這個問題。 –
params是_ActionController :: Parameters_的一個實例,因爲所有的對象都有一個object_id,如果你賦值_fields = params [:fields] _這個賦值是通過引用的,而且_object_id_仍然是相同的,所以,當你將params轉換爲哈希對象是完全不同的,所以你可以做一些像_parameters = params.to_h_和_fields = parameters [:fields] _我編輯我的建議上面 – TolerantX