当我得到散列哈希值时,我怎样才能获得价值?

时间:2015-03-27 13:01:49

标签: ruby-on-rails ruby loops hash

我在我的参数中得到以下代码(从一个带有simple_field_for块的haml简单形式发送。我需要的所有数据都在这里,但是我很难按照我想要的方式获取它。

我的参数:

"report_templates"=>{"1"=>{"start_year"=>"2015", "start_period"=>"", "use_concept_data"=>"0", "name"=>"Financieel jaaroverzicht", "id"=>"1"},    "3"=>{"start_year"=>"2015", "start_period"=>"", "use_concept_data"=>"0", "name"=>"Klanten", "id"=>"3"}}

我有report_templates,其中包含每个报告模板的设置。现在在控制器中我想使用这些设置为每个模板呈现.pdf报告。

我需要的是:

"1"=>{"start_year"=>"2015", "start_period"=>"", "use_concept_data"=>"0", "name"=>"Financieel jaaroverzicht", "id"=>"1"}

我现在可以通过

访问设置了
params[:report_template]["1"] 

然后回来

{"start_year"=>"2015", "start_period"=>"", "use_concept_data"=>"0", "name"=>"Financieel jaaroverzicht", "id"=>"1"}

但我想在我的控制器中做动态。因为report_template的id可以是任何数字。

我的控制器:

report_settings = params[:report_templates]
report_settings.each do |rs|
 rs[:id]

但我没有从每个模板中获取id ..

我希望有人能帮我解决问题。

1 个答案:

答案 0 :(得分:1)

所以,你很亲密。但是还有很多工作要做。

report_settings = params[:report_templates]
report_settings.each do |report_id, report_value|
  # now you have access to the key(report_id) 
  # and value(report_value) both
end

如果您不需要,只需要值,那么:

report_settings = params[:report_templates]
report_settings.each do |_, report_value|
  # now you have access the value(report_value)
end

阅读Hash#each方法以获取详细信息。