ruby-on-rails - 如何从哈希中获取数据?

标签 ruby-on-rails ruby

给定这个散列:params

"positions"=>{
    "1"=>{"x"=>"50", "y"=>"30"}, 
    "2"=>{"x"=>"22", "y"=>"53"}, 
    "3"=>{"x"=>"68", "y"=>"35"}
 }

我该怎么做? (不起作用,但试图展示我想做的事情)

params[:positions].each do |position|
  logger.info(position.x)
end

我知道,初学者的痛苦...

我得到一个NoMethodError(["1", {"x"=>"50", "y"=>"30"}]:Array 的未定义方法'x')

最佳答案

我觉得你想要的是

params[:positions].each do |index, coords|
  logger.info(coords['x'])
end

如果您不关心索引,您也可以只使用 params[:positions].values.each do |coords| 代替。

关于ruby-on-rails - 如何从哈希中获取数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1324432/

相关文章:

ruby-on-rails - url 中没有 Controller 名称的嵌套资源

ruby-on-rails - 使用 Sunspot 查询具有不同属性的多个模型

javascript - 将数据从 javascript 传递到 .erb

ruby-on-rails - Rails:after_create中的异常停止保存

ruby-on-rails - 将 if-else block 重构为更简洁的代码

javascript - 在用户选择查看全部之前限制向用户显示的评论数量的好方法是什么?

ruby-on-rails - 使用 rails 中的操作邮件通知电子邮件发送失败

ruby - 如果 Java 人去 Scala,C# 去 F#,那么 Ruby 人去哪里寻求函数式涅槃?

ruby - Gosu/Ruby 安装失败

ruby-on-rails - Rails 如何判断 sidekiq worker 是否已完成 perform_async