Roo を使用して Excel からいくつかの値を Rails アプリのブール値フィールドにインポートしました。
Rails コンソールではすべて正常に動作しているように見えますが、Rails アプリではブール値が Rails によって読み取られないようです。
私は DataPoint モデルを持っています。DataPoint の 1 つの属性は、ブール値のフィールド currently_employed です。
Rails Console では、次のように動作します (問題ないようです)。
003:0 > x.currently_employed
=> true
004:0 > z.currently_employed
=> false
005:0 > x.currently_employed == false
=> false
006:0 > x.currently_employed == "true"
=> false
007:0 > x.currently_employed == true
=> true
008:0 > z.currently_employed == false
=> true
009:0 > z.currently_employed == "false"
=> false
010:0 > z.currently_employed == true
=> false
コンソールですべてがうまく見えるとすれば、data_point.rb モデルの次の式で問題なく動作すると思います。
def self.pct_true(data_points)
true_count = 0
data_points.each do |x|
if x.currently_employed
true_count += 1
else
end
end
return true_count / data_points.count * 100
end
しかし、Rails コンソールで x.currently_employed が true と評価される DataPoint のインスタンスが複数あるにもかかわらず、値ゼロが返されます。
興味深いことに、ブール フィールド「currently_employed」を整数フィールド「annual_income」に変更すると、この同じ関数が各インスタンスをカウントし、値 100 を返します。
上記の Rails Console の結果から、私のモデルのメソッドのどこが間違っているのでしょうか?
ありがとう!