2017-02-17 25 views
0

我有一个CSV导入方法,它呈现关于要导入的数据的确认/预览页面,并且我想将数据从预览传递到实际的导入方法。Rails 4:将CSV作为散列传递为隐藏字段

在预览中,CSV已经变成行的散列,我想将该散列传递给导入方法。我试着简单地做:

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

其中@final是数据的哈希值,但它通过哈希为一个字符串,在参数,可以将数据看起来像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\" 
    .... 
    } 

我还能如何通过@final,使其保持其哈希格式?

+0

你是什么意思,以便它保持其散列格式?请编辑您的问题,以包含您希望呈现的HTML看起来像什么的示例。 –

回答

0

我发现了另外一个问题这个有用的帮手:

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 

它可以让你通过哈斯作为参数。