質問: 初心者です。 modelから取得した結果からviewに結果を表示する場合に モデルの中身が可変的になる場合(モデルで都度コネクションで変えるようにしたと過程) @a⇦aというテーブルを取得するものもあればbというテーブルを取得をします。 本の場合、1コントローラで1viewの結果なので、大体行の結果を指定して出力する記述が多いのですが、 ``` <% @a do |a| %> <%= a.id %> <%= a.title %> <% end %> ``` これが上記のように引っ張ってくるテーブルが異なるので、カラム名を指定しちゃうとviewに反映ができないため、これを動的に取得するにはどのようにすれば良いのでしょうか。 もしくは参考になるサイトがあればご教授いただけると助かります。
回答: クラスメソッド `columns` でカラム名などを得る (`a.class.columns`) ことができます。 ``` <% @a.each do |a| %> <% a.class.columns.map(&:name).each do |n| %> <%= a.send(n) %> <% end %> <% end %> ``` 他に考えられる方法: * 一部のカラムだけ違って、カラムが存在しない場合に空白表示で良いのであれば try を使う (`a.try(:title)`) * モデルが違うのであれば、異なる変数に入れて判定する