此代码效果很好
Geokit::default_units = :miles #:kms, :nms, :meters
但是这段代码会产生错误
puts params[:unit] # miles
Geokit::default_units = params[:unit] #:miles, :kms, :nms, :meters
这有什么问题?
答案 0 :(得分:3)
那是因为所有通过params的都是一个字符串,如果你想要一个符号,那么考虑使用.to_sym:
params = { unit: 'miles' }
p params[:unit].class # String
p params[:unit].to_sym.class # Symbol
答案 1 :(得分:3)
您确认function add(...values) {
return values.reduce((sum, value) => sum + value, 0)
}
console.log(add(1, 4, 34, 45, 3, 4, 5))
实际上是一个符号,而不是字符串吗?
params[:unit]
如果以上解决了您的问题,那么您在那里没有符号(可能是,如果从HTTP请求中读取了params)