1

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 の結果から、私のモデルのメソッドのどこが間違っているのでしょうか?

ありがとう!

4

3 に答える 3

0

上記のように、これは整数除算に関連する問題です

 無関係なメモ:

true_count = data_points.select {|data_point| data_point.currently_employed }.size
于 2015-06-04T15:28:04.587 に答える