我正在尝试迭代ruby哈希。我不得不承认,我对红宝石的了解很差,我正在努力纠正这个问题,所以如果这是一个非常基本的问题,请耐心等待。
我想知道我的哈希的语法是否已关闭。之所以看起来是因为它是rakefile的一部分,我需要在其中合并多个地址。 (我从来没有做过,我总是只有一个地址需要担心)我知道解决这个问题的方法是将地址作为rakefile构建,然后循环遍历它们。
clinic.build_address.each do | address, value |
{
(city: "Minneapolis"
state: "MN"
address1: "316 10th ave"
zip: "55414"),
(city: "Hudson"
state: "WI"
address1: "119 Belmont Street"
zip: "54016")
}
puts build_address
凭借我现在拥有的东西,我得到了一个意想不到的标签(我不喜欢我拥有' city:minneapolis')
有人能够快速查看我对此的看法吗?
答案 0 :(得分:1)
如果您的Clinic
模型与Address
模型相关,并且您运行build_address
,则不会产生散列,而是ActiveRecord对象。但是,我不确定你的目标到底是什么。 击>
要迭代哈希,您可以使用:
some_hash.each do |key, value|
# some logic using key and/or value
end
击> <击> 撞击>
也许你的意思是你想要这样的东西:
addresses = [
{
city: "Minneapolis"
state: "MN"
address1: "316 10th ave"
zip: "55414"
},
{
city: "Hudson"
state: "WI"
address1: "119 Belmont Street"
zip: "54016"
}
]
addresses.each { |a| clinic.build_address a }
答案 1 :(得分:0)
很难理解你要做什么,但你的代码不是有效的Ruby代码。我能得到的最接近的是:
{a: "b"}.each do | address, value |
[
{
city: "Minneapolis",
state: "MN",
address1: "316 10th ave",
zip: "55414"
},
{
city: "Hudson",
state: "WI",
address1: "119 Belmont Street",
zip: "54016"
}
]
end