以下の様なデータを持つStatusモデルから、trueを持つカラムのみを取得し、そのカラム名を表示させたいです。
Ruby
1class Status < ActiveRecord::Migration 2 def change 3 create_table :status do |t| 4 t.boolean :A ,default: true 5 t.boolean :B ,default: false 6 t.boolean :C ,default: false 7 t.boolean :D ,default: false 8 t.boolean :E ,default: false 9 t.boolean :F ,default: false 10 end 11 end 12end
上記のStatusモデルはUserモデルと1対1の関係を持つ子モデルです。
あるUserのプロフィールを表示する際に、Statusモデルの持つカラムの中から値がtrueのカラム名のみを取得し、同時に表示させることはできるのでしょうか?
また、その際にカラム名も取得し、日本語にした上でviewで表示もしたいです。
表示としては、
状態:エー、ビー、ディー
のようにviewで表示したいです。(:A,:B,:Dがtrueの場合。)
ブロックやロケールを使えばできるような気もするのですが、理解が浅く、その記述方法がわかりません。
希望通りの実装が可能であれば、その方法を具体的に教えていただきたいです。
この「状態」というデータについては、量も多く開発途中で変更がある可能性があることに加え、各「状態」を持つユーザーを検索する、という機能も実装したいために、enumよりもモデル管理の方がいいのかなと考えていましたが、
複数選択できるデータを持つためにもっといい方法があるよ、という場合もご教示いただけると嬉しいです。
よろしくお願いいたします。

回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2015/07/28 10:30
2015/07/28 11:49
2015/07/28 12:18
2015/07/28 12:20 編集
2015/07/28 12:27