【问题标题】:How can i get values out when i've got a hash of hashes?当我有哈希值时,如何获取值?
【发布时间】:2015-05-31 19:40:11
【问题描述】:

我的参数中有以下代码(从带有 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"}}

我有带有每个报告模板设置的报告模板。现在在控制器中,我想使用这些设置为每个模板呈现一个 .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..

我希望有人可以帮助我解决我的问题。

【问题讨论】:

  • 你要求rs[:id],但在上面的代码中,id是一个字符串,所以你不应该要求rs["id"]吗?

标签: ruby-on-rails ruby loops hash


【解决方案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

如果你不需要key,而只需要值,那么:

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

阅读Hash#each方法以获取详细文档。

【讨论】:

  • @SteffenWitvliet 请确定.. :)
  • @SteffenWitvliet 你能告诉我你接下来想要什么吗..我只看到数据..
  • 我需要每个 report_template 的所有键和值。所以我以后可以使用这些值来为每个模板呈现一个 pdf 报告。所以假设我想为 id 为 1 的报告模板生成 pdf。[:report_template]["1"] 我需要 key start_year 中的值 2015,这是生成模板内容所需的
  • 我已经尝试了您的第一个选项,这似乎是正确的。 report_settings = params[:report_templates] report_settings.each do |report_id, report_value| report_value[:start_year] end我希望它能给我返回键 start_year 中的值?
  • @SteffenWitvliet 是的.. 它应该。
猜你喜欢
  • 2012-02-11
  • 1970-01-01
  • 2013-01-09
  • 2021-12-01
  • 2015-10-17
  • 2012-07-01
  • 1970-01-01
  • 2015-05-26
  • 1970-01-01
相关资源
最近更新 更多