テーブルの列がTINYINTの場合、私はこの奇妙な問題に直面しています。私は私のローカルのテーブルを照会するときに、真または偽の列値を持つレコードを取得します。私はプロダクションにコードを入れ、時には真偽値を取得します。しかし、突然値がtrueまたはfalseから0または1に切り替わります。なぜこれが起こるのか分かりません。この問題に関する洞察はすばらしいことでしょう。TINYINT列の値がtrueに切り替わり、1
私のTINYINT列の値は、1または0のみです。
@content_map: {1=>true, 338=>true, 375=>false}
ローカルでハッシュは上記のようになります。
は、だから私がどのように見えるすべてのキーに対して私は、対応するTINYINT列の値を格納していますここで、レコードから作成しています。このハッシュがあります。
生産では、ハッシュは以下のようになります。
@content_map: {1=>true, 338=>true, 375=>false}
、時にはのようないくつかのリロード後:
@content_map: {1=>0, 338=>1, 375=>0}
だからハッシュ値が生産に変化し続ける、これは私が理解していないものです。それは常に真でなければいずれか、またはそれは常に私が@cotent_mapを作成していますどのように1
次のようになります。ここでは
@content_map = Hash.new
は、列を持つテーブル上の選択クエリは、型TINYINT
@list = Action.all.select("id, free")
@list.map {|i| @content_map[i.id] = i.free}
の自由です
「@ content_map」はどのように取得していますか? – tadman