-
-
Save joe1chen/4127547 to your computer and use it in GitHub Desktop.
String "false" to_bool ... or how to convert Rails/SimpleForm radio buttons to boolean
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
module StringToBoolean | |
def to_bool | |
return true if self == true || self =~ (/^(true|t|yes|y|1)$/i) | |
return false if self == false || self.blank? || self =~ (/^(false|f|no|n|0)$/i) | |
raise ArgumentError.new("invalid value for Boolean: \"#{self}\"") | |
end | |
end | |
class String; include StringToBoolean; end | |
module BooleanToBoolean | |
def to_bool;return self; end | |
end | |
class TrueClass; include BooleanToBoolean; end | |
class FalseClass; include BooleanToBoolean; end |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
It turns out that if you're using Mongoid, then Boolean is declared as a class inside of Mongoid. This prevents the original gist from working if using Mongoid since we're trying to redefine Boolean as a module. So the original gist has been modified to rename the module Boolean to BooleanToBoolean.