Rails 4:CSV作为哈希字段传递的哈希值

时间:2017-02-17 14:15:36

标签: ruby csv ruby-on-rails-4 hash

我有一个CSV导入方法,用于呈现要导入的数据的确认/预览页面,我想将数据从预览传递到实际的导入方法。

在预览中,CSV已经变成了行的哈希值,我想将该哈希值传递给import方法。我尝试过这样做:

<%= 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以保持其哈希格式?

1 个答案:

答案 0 :(得分: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

它允许你传递haas作为参数。