我需要一个简单的函数来返回“true”或“false”传递给它的参数是:
1
或0
,或true
或false
我目前有这样的事情,所以如果可能的话,答案应该简洁如下:
def boolean(value); return value ? ( value == 1 ? "true" : "false) : nil; end
感谢。
答案 0 :(得分:5)
一些想法:
def boolean(x)
%w{1 true}.include?(x).to_s
end
def boolean(x)
(x == '1' || x == 'true').to_s
end
还有wannabe bool宝石:
require 'wannabe_bool'
'1'.to_b # => true
'0'.to_b # => false
'true'.to_b # => true
'false'.to_b # => false
答案 1 :(得分:1)
您可能想了解Rails如何在其数据库连接适配器中进行类型转换:
TRUE_VALUES = [true, 1, '1', 't', 'T', 'true', 'TRUE', 'on', 'ON'].to_set
# convert something to a boolean
def value_to_boolean(value)
if value.is_a?(String) && value.empty?
nil
else
TRUE_VALUES.include?(value)
end
end
答案 2 :(得分:0)
我认为这会奏效,但欢迎评论:
def b(k); return k ? ( (k == "1" || k == "true") ? "true" : "false" ) : nil; end
puts b("1")
puts b("0")
puts b("true")
puts b("false")
结果:
true
false
true
false