Ruby on rails 到的Ruby简单映射对象不起作用
我有一个简单的问题,但我找不到解决办法。 我有一个论坛模型(活动记录)与几个领域 我正在创建一个类方法,它返回一个has,其中一个值作为键(不是id),另一个值作为值 这是我的方法:Ruby on rails 到的Ruby简单映射对象不起作用,ruby-on-rails,ruby,ruby-2.0,Ruby On Rails,Ruby,Ruby 2.0,我有一个简单的问题,但我找不到解决办法。 我有一个论坛模型(活动记录)与几个领域 我正在创建一个类方法,它返回一个has,其中一个值作为键(不是id),另一个值作为值 这是我的方法: Forum.all.map { |f| [f.old_id => f.icon.url(:micro) ]} 它回来了 [[{10=>"/images/fallback/icon_fallback.png"}], [{6=>"/images/fallback/icon_fallback.png
Forum.all.map { |f| [f.old_id => f.icon.url(:micro) ]}
它回来了
[[{10=>"/images/fallback/icon_fallback.png"}],
[{6=>"/images/fallback/icon_fallback.png"}],
[{18=>"/images/fallback/icon_fallback.png"}]]
而不是
{10=>"/images/fallback/icon_fallback.png", 6=>"/images/fallback/icon_fallback.png", 18=>"/images/fallback/icon_fallback.png"}
错误是什么?简而言之,您可以这样修改,将
方括号
更改为花括号
:
Forum.all.inject({}) { |r,f| r.merge!(f.old_id => f.icon.url(:micro)) }
简而言之,您可以这样修改,将
方括号
更改为花括号
:
Forum.all.inject({}) { |r,f| r.merge!(f.old_id => f.icon.url(:micro)) }
简而言之,您可以这样修改,将
方括号
更改为花括号
:
Forum.all.inject({}) { |r,f| r.merge!(f.old_id => f.icon.url(:micro)) }
简而言之,您可以这样修改,将
方括号
更改为花括号
:
Forum.all.inject({}) { |r,f| r.merge!(f.old_id => f.icon.url(:micro)) }
在代码中,
map
返回一个数组,方括号生成包含哈希的数组
res = {}
Forum.all{|f| res[f.old_id] = f.icon.url(:micro) }
在代码中,
map
返回一个数组,方括号生成包含哈希的数组
res = {}
Forum.all{|f| res[f.old_id] = f.icon.url(:micro) }
在代码中,
map
返回一个数组,方括号生成包含哈希的数组
res = {}
Forum.all{|f| res[f.old_id] = f.icon.url(:micro) }
在代码中,
map
返回一个数组,方括号生成包含哈希的数组
res = {}
Forum.all{|f| res[f.old_id] = f.icon.url(:micro) }
您可以使用
对代码进行最小的更改,并收到所需的结果:
Forum.all.map { |f| [f.old_id, f.icon.url(:micro)] }.to_h
您可以使用对代码进行最小的更改,并收到所需的结果:
Forum.all.map { |f| [f.old_id, f.icon.url(:micro)] }.to_h
您可以使用对代码进行最小的更改,并收到所需的结果:
Forum.all.map { |f| [f.old_id, f.icon.url(:micro)] }.to_h
您可以使用对代码进行最小的更改,并收到所需的结果:
Forum.all.map { |f| [f.old_id, f.icon.url(:micro)] }.to_h
是的,您可以使用reduce
或inject
方法,或仅从Array
s构建Hash
:
Hash[Forum.all.map { |f| [f.old_id, f.icon.url(:micro) ]}]
因为您可以使用#to_h
方法:
Forum.all.map { |f| [f.old_id, f.icon.url(:micro) ]}.to_h
是的,您可以使用reduce
或inject
方法,或仅从Array
s构建Hash
:
Hash[Forum.all.map { |f| [f.old_id, f.icon.url(:micro) ]}]
因为您可以使用#to_h
方法:
Forum.all.map { |f| [f.old_id, f.icon.url(:micro) ]}.to_h
是的,您可以使用reduce
或inject
方法,或仅从Array
s构建Hash
:
Hash[Forum.all.map { |f| [f.old_id, f.icon.url(:micro) ]}]
因为您可以使用#to_h
方法:
Forum.all.map { |f| [f.old_id, f.icon.url(:micro) ]}.to_h
是的,您可以使用reduce
或inject
方法,或仅从Array
s构建Hash
:
Hash[Forum.all.map { |f| [f.old_id, f.icon.url(:micro) ]}]
因为您可以使用#to_h
方法:
Forum.all.map { |f| [f.old_id, f.icon.url(:micro) ]}.to_h
使用活动支持每个带有\u对象的\u
:
Forum.all.each_with_object({}) { |f, h| h[f.old_id] = f.icon.url(:micro) }
使用活动支持每个带有\u对象的\u
:
Forum.all.each_with_object({}) { |f, h| h[f.old_id] = f.icon.url(:micro) }
使用活动支持每个带有\u对象的\u
:
Forum.all.each_with_object({}) { |f, h| h[f.old_id] = f.icon.url(:micro) }
使用活动支持每个带有\u对象的\u
:
Forum.all.each_with_object({}) { |f, h| h[f.old_id] = f.icon.url(:micro) }
不起作用。它返回[{10=>“/images/fallback/icon\u fallback.png”}、{6=>“/images/fallback/icon\u fallback.png”}、{18=>“/images/fallback/icon\u fallback.png}]
不起作用。它返回[{10=>“/images/fallback/icon\u fallback.png”}、{6=>“/images/fallback/icon\u fallback.png”}、{18=>“/images/fallback/icon\u fallback.png}]
不起作用。它返回[{10=>“/images/fallback/icon\u fallback.png”}、{6=>“/images/fallback/icon\u fallback.png”}、{18=>“/images/fallback/icon\u fallback.png}]
不起作用。它返回[{10=>“/images/fallback/icon\u fallback.png”},{6=>“/images/fallback/icon\u fallback.png”},{18=>“/images/fallback/icon\u fallback.png”}