Ruby on rails 从散列调用块分配
使用Rails 4.2。我有以下资料:Ruby on rails 从散列调用块分配,ruby-on-rails,Ruby On Rails,使用Rails 4.2。我有以下资料: place_details = { name: "abc", address_components: [ { long_name: "Nevada", short_name: "NV", types: ["administrative_area_level_1", "political"] }, { long_name: "United States", short_name: "US", types: ["country", "
place_details = {
name: "abc",
address_components: [
{ long_name: "Nevada", short_name: "NV", types: ["administrative_area_level_1", "political"] },
{ long_name: "United States", short_name: "US", types: ["country", "political"] }
]
}
place.tap do |pl|
pl.name = place_details.dig(:name)
place_details.dig(:address_components).each do |component|
pl.component.dig(:types).first = component[:long_name]
end
end
预期:
place.tap do |pl|
pl.name = "abc"
pl.administrative_area_level_1 = "Nevada"
pl.country = "United States"
end
行pl.component.dig(:types).first=component[:long\u name]
不起作用,原因很明显
我想要的是:
- 赋值能力
- 仅在
:类型中取第一名
和行政区级别1
国家
place.tap do |pl|
pl[:name] = place_details.dig(:name)
place_details.dig(:address_components).try(:each) do |component|
pl[component.dig(:types)[0].to_sym] = component[:long_name]
end
end
place.tap do |pl|
pl[:name] = place_details.dig(:name)
place_details.dig(:address_components).try(:each) do |component|
pl[component.dig(:types)[0].to_sym] = component[:long_name]
end
end