params hash中的访问值

时间:2017-11-13 21:50:37

标签: ruby-on-rails ruby

Rails 5

我正试图访问其中一个参数

Parameters: {
  "utf8"=>"✓", "authenticity_token"=>".......", 
  "temp_file_path"=>"{:value=>\"/home/utils/rails/fw_export/tmp/1510608598.csv\"}", 
  "button"=>""
}

具体来说,是temp_file_path。我试过了:

temp_file_path = params[:temp_file_path][:value]

但是我收到了一个错误:

TypeError (no implicit conversion of Symbol into Integer):

如何访问该值?

我也尝试过params [" temp_file_path"] [:value]

解决方案:

我将temp_file_file路径作为params的一部分传递,如下所示(来自View):

= hidden_field_tag :temp_file_path, :value => temp_file_path

我把它改为:

 = hidden_field_tag :temp_file_path, temp_file_path

现在可以通过以下方式访问该值:

params[:temp_file_path]

1 个答案:

答案 0 :(得分:0)

您的哈希值无效:

{
    "utf8" => "✓",
    "authenticity_token" => ".......", 
    "temp_file_path" => { "value" => "/home/utils/rails/fw_export/tmp/1510608598.csv\" }, 
    "button" => ""
 }

以上将是一个有效的哈希值。

您可以访问:params["temp_file_path"]["value"]

此外,对符号进行符号化将允许您使用符号访问哈希。 Seep symbolizing象征着嵌套的哈希: https://apidock.com/rails/Hash/deep_symbolize_keys

params.deep_symbolize_keys

现在您可以按以下方式访问它:params[:temp_file_path][:value]