質問: ### 必要な持ち物をユーザーの年齢によって推奨してくれる仕様を目指しています。 例えばユーザーが18歳以下であるUserモデルに登録されているならば、親の許可証が持ち物として必要であると教えてくれるようなものです。持ち物はItemモデルを用意し、certification, passportなどのカラムを用意しました。どれもinterger型で、持ち物として必要なものは1,不必要なものは0としています。 そこでユーザーが自分の年齢を入力しただけで、必要な持ち物が持ち物リストとして完成される仕様を目指したいです。User.age <20の時 certification: 1となり、持ち物リストにはcertificationを含む ハッシュの右辺が1であるものが抽出されるようにしたいです。 カラム名を絞って検索をすることはできるのですが、今回の場合はカラム名関係なく、右辺が1であるもの全てを持ち物リストに検索結果として出力させたいです。
回答: 今のモデルでは項目ごとにチェックすることにせざるをえないと思います。 それが嫌ならモデルの設計を変えましょう Item は 名称だけ ItemUserモデルを通して User と Item を 多:多にし、 user.items で得られるものが必要なもの。 別解 Itemモデルに 年齢条件と名称をいれる。1Itemレコードに1持ち物、 UserとItem に関連は作らず 単に Item から年齢条件で抜き出したものの一覧を表示する