2017-02-17 3 views
0

Ich habe eine CSV-Importmethode, die eine Bestätigungs-/Vorschau-Seite der zu importierenden Daten rendert, und ich möchte die Daten aus der Vorschau an die tatsächliche Importmethode übergeben.Rails 4: CSV zu Hash als verdecktes Feld übergeben

In der Vorschau wurde die CSV bereits in einen Hash der Zeilen umgewandelt und ich möchte diesen Hash an die Importmethode übergeben. Ich habe einfach versucht, zu tun:

<%= hidden_field_tag "my_hash", @final %> 

wo @final der Hash von Daten, aber es passiert den Hash als String und in dem params, sehen die Daten wie json.

"wi_hash"=>"{ 
    \"name_fail\"=>[{\"scale_id\"=>\"509\", 
    \"name\"=>\"John Doe\", 
    \"date\"=>\"<no data>\", 
    \"current_weight\"=>\"999\", 
    \"bmi\"=>\"999\", 
    \"body_fat\"=>\"999\", 
    \"visceral_fat\"=>\"999\", 
    \"tbw\"=>\"999\", 
    \"muscle_mass\"=>\"999\", 
    \"basal_metabolic_rate\"=>\"999\" 
    .... 
    } 

Wie sonst kann ich @final so passieren, dass sie ihre Hash-Format unterhält?

+0

Was meinst du mit "so dass es sein Hash-Format beibehalten"? Bitte bearbeiten Sie Ihre Frage, um ein Beispiel zu geben, wie das gerenderte HTML aussehen soll. –

Antwort

0

fand ich diese nützlichen Helfer in einer anderen Frage:

def hash_to_hidden_fields(hash) 
    query_string = Rack::Utils.build_nested_query(hash) 
    pairs  = query_string.split(Rack::Utils::DEFAULT_SEP) 

    tags = pairs.map do |pair| 
    key, value = pair.split('=', 2).map { |str| Rack::Utils.unescape(str) } 
    hidden_field_tag(key, value) 
    end 

    tags.join("\n").html_safe 
end 

Es ermöglicht Ihnen, die haas als Argument zu übergeben.

Verwandte Themen