如何在 ruby 中将符号作为 post 请求的参数传递?

How to pass symbol as parameter of post request in ruby?

此代码运行良好

Geokit::default_units = :miles #:kms, :nms, :meters

但是这段代码会出错

puts params[:unit]     # miles
Geokit::default_units = params[:unit] #:miles, :kms, :nms, :meters

这有什么问题吗?

那是因为通过params的都是字符串,如果你想要一个符号,那么考虑使用.to_sym:

params = { unit: 'miles' }
p params[:unit].class # String
p params[:unit].to_sym.class # Symbol

您确认 params[:unit] 实际上是一个符号,而不是字符串吗?

 Geokit::default_units = params[:unit].to_sym

如果以上解决了您的问题,那么您没有开始的符号(可能,如果从 HTTP 请求中读取了参数)