Rails でブール値をチェックしようとしているときに問題に直面しています。以前は、1 または 0 に対してブール値をチェックしていた私の条件が機能していました。しかし、最近、これがうまくいかなくなりました。
それらを mysql レベルでチェックすると、ブール値は値 1 と 0 の tinyint(1) として保存されます。
Earlier comparison logic
is_admin == 1
(最近の問題のため) 1 と 0 の代わりに true と false をチェックすると、うまくいきます。なぜこれが以前に失敗しなかったのかはわかりません。
Current comparison logic
is_admin == true
また、Rails のコンテキストでは常にブール列の比較を true または false に対して行うべきか、1 と 0 に対して行うべきかについて、100% 確信があるわけではありません。
誰でもこれに光を当ててください。
その過程で私が気づいたことの 1 つは、以前の比較では、たとえば 1 (整数) と true (実際のブール値) が false に評価されていたことです。これは理解できるようになりましたが、以前はこのロジックがどのように機能していたのか、まだ理解できていません。
これについての洞察は役に立ちます。Rails でこの種のチェックを行うためのベスト プラクティスを推奨してください。ありがとうございました。