1
フロントエンドアプリケーションからフィールドの動的配列を取得して、ワークブックの内容を特定します。 2つのフィールドは同じ値を持ちますが、異なる見出しが必要です。だから私は、私の方法にこれを追加しました:AXLSXのRails Paramsの名前を変更
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]
は、2つの同一の文字列の最初のもの。
問題は、私の.each
ループ内で、params[:fields]
が今更新されたfields
変数と同じ内容になっていることです。私は.dup
を使ってみましたが、それは私のparamsを変更していないままでした。私は、次の手順を実行して、この問題を回避することができています:異なる列ヘッダーを印刷のために私のparamsを複製するクリーンな方法がある場合は、私が興味
fields = params[:fields]
fields[0].replace('new string')
sheet.add_row fields
fields[0].replace('original string')
。前もって感謝します!
'paramsは[:フィールド]は、' 'あなたが上.to_h'呼び出すことはできません単純な配列です。私は 'フィールド'をハッシュに変えることがこれをスリムにするのかどうかはわかりません。 –
paramsは、_ActionController :: Parameters_のインスタンスです。assign _fields = params [:fields] _この割り当ては参照で、_object_id_はそのままのため、すべてのオブジェクトにobject_idがあるため、paramsをハッシュオブジェクトは完全に異なっているので、あなたは_parameters = params.to_h_と_fields = parameters [:fields] _のようなことをすることができます_上記の私の提案を編集しました – TolerantX