ransackで数字の1をパラメータで渡すとエラーが出た

ransackを使った検索フォームを作っていたのですが、数字の1をパラメータとして送る際、エラーが出てしまう問題にぶつかりました。

その解決方法について書き留めておこうと思います。

 

エラー内容

ransackを使って作成した検索フォームで、数値を入力してもらう項目があったのですが、

1と入力した際に以下のようなエラーが出てしまっておりました。

ArgumentError - wrong number of arguments (given 0, expected 1):

 1以外の数字では問題なく動きます。

 

原因

1が true に変換されてしまい、うまく動かなかったようです。

以下のリンク先に詳しく書いてあります。

github.com

 

 

解決方法

先ほどのリンク先にも書いてあるのですが、

config/initializers/ransack.rb ファイルを作成し、以下のように設定を追加してあげれば解決します!!

Ransack.configure do |c|
    c.sanitize_custom_scope_booleans = false
end

 

 

感想など

(なんだか自分で解決したかのように書いてしまいましたが、問題に気づいてくれたのも原因を見つけてくれたのも先輩です)