整数

2017-12-02 11 views
0

としてシナトラCookieの値を維持するためにどのように私は、整数整数

cookies[:which_link] ||= 0 

文字列に整数から、それを変換しているようだを使ってクッキーを設定します。私はクッキー[:which_link] .classを行い、それは文字列を返します。

は、私は私のAPP-

cookies[:which_link] -= 1 if params[:pages] == "previous" 

にこのような何かをする必要はありませんが、動作しません、明らかに、どちらもto_i救済策です。ラックオプションの1つを使用することを検討する前に、このための回避策はありますか?

通常のRubyハッシュでは、値として整数を入力しますが、それはそのままでIntegerクラスのものです。

+1

jsonやyamlなどにシリアル化できます。 –

答えて

1

あなたが必要としていることを理解していれば、to_iが動作すると思いますが、あなたは少し文章を書き直す必要があります。次の例を参照してください:

require 'sinatra' 
require 'sinatra/cookies' 

get '/' do 
    cookies[:test] ||= 0 
    cookies[:test] = cookies[:test].to_i + 1 

    "test: #{cookies[:test]}" 
end 

あなたは文字列とFixnumかを追加することはできませんが、あなたはFixnumかに文字列を変換し、それに1を追加することができます。そして、あなたが指摘したように新しいクッキーナンバーにそのクッキーの値を設定するだけです。

+0

これはうまくいきました、ありがとう!私はStringとFixnumをどのように追加していたのかはわかりません。私が最初に入れていたのは、何らかの形で文字列に変換された単なる整数でした。 – stuartambient

+1

Sinatraによってすべてがシリアル化され、クライアントに送信されます。クッキーを配列に設定してみてください。 '&'で区切られた文字列に結合されています。 – SpyMachine

+0

Gotcha。私は実際にアレイを試しました、そう、はい、私は今理解しています。タイ! – stuartambient