我使用整数
设置cookiecookies[:which_link] ||= 0
似乎将它从整数转换为字符串,因为没有抱怨。我做了一个cookies [:which_link] .class,然后它回来了。
我需要在我的应用程序中执行类似的操作 -
cookies[:which_link] -= 1 if params[:pages] == "previous"
但是不起作用,显然,to_i
也不是一种补救措施。在我必须考虑使用其中一个Rack选项之前,有任何变通方法吗?
在常规Ruby哈希中,我输入一个整数,作为一个值,它保持不变并显示Integer类。
答案 0 :(得分:1)
如果我理解你需要什么,我认为to_i
会起作用,你只需稍微重写一下你的陈述。请参阅以下示例:
require 'sinatra'
require 'sinatra/cookies'
get '/' do
cookies[:test] ||= 0
cookies[:test] = cookies[:test].to_i + 1
"test: #{cookies[:test]}"
end
您无法添加String和Fixnum,但可以将String转换为Fixnum,然后将其添加1。然后只需将该cookie的值设置为新的Fixnum,正如您所指出的那样,它可以正常工作。