【发布时间】:2016-02-29 03:19:46
【问题描述】:
在我的助手中,我从数据库中生成一个哈希。哈希包含每个州的键,其值包含城市数组。每个城市条目本身就是一个数组,带有名称和 ID。
例如(此代码只是一个说明):
myHash[key => MD, value=>[ ['Annapolis',1],['Potomac',2] ] ]
这是产生哈希的实际代码:
def get_city_hash
stateHash = Hash.new
City.all.each do |c|
if !stateHash.include? c.stateab
stateHash[c.stateab] = Array.new
end
stateHash[c.stateab] << [c.name, c.id]
end
end
问题是当我尝试在 javascript 中创建一个对应的关联数组时,似乎我的每个城市的 Array 对象都没有 .each 方法(为了减少混乱,去掉了中间的代码)
var city_array = [
<% get_city_hash.each do |key, value|%>
<%value.each do |v|%>
<%end%>
<%end%>
对于此代码,我在包含 value.each 的行上收到此错误:
nil:NilClass 的未定义方法 `each'
我在帮助程序中的状态数组上测试了一个 .each,它运行良好。我得到 NilClass 的这种格式有什么变化?
【问题讨论】:
-
您能否确认 get_city_hash 确实返回 stateHash(看起来应该返回,但您可以在 City.all 循环结束后添加一个额外的 stateHash 以确保绝对确定!)跨度>
标签: javascript ruby-on-rails arrays ruby