Boolean
You can define a boolean filter using as: :boolean:
class ArticleSearch < Caoutsearch::Search::Base
filter :published, as: :boolean
end
The filter will transform input as booleans:
Article.search(published: "true")
{
"query": {
"bool": {
"filter": [
{ "range": { "published": true }}
]
}
}
}
The following values will be casted as false:
Article.search(published: false)
Article.search(published: 0)
Article.search(published: "0")
Article.search(published: "f")
Article.search(published: "false")
Article.search(published: "off")
{
"query": {
"bool": {
"filter": [
{ "range": { "published": false }}
]
}
}
}
Empty values (nil, "", []) are ignored.
Any other values, will be casted as true:
Article.search(published: true)
Article.search(published: 1)
Article.search(published: "1")
Article.search(published: "t")
Article.search(published: "true")
Article.search(published: "on")
Article.search(published: "whatever")
{
"query": {
"bool": {
"filter": [
{ "range": { "published": true }}
]
}
}
}