

初心者です。  
modelから取得した結果からviewに結果を表示する場合に  
モデルの中身が可変的になる場合(モデルで都度コネクションで変えるようにしたと過程)  
@a⇦aというテーブルを取得するものもあればbというテーブルを取得をします。  
  
本の場合、１コントローラで1viewの結果なので、大体行の結果を指定して出力する記述が多いのですが、

[code]

    <% @a do |a| %>
          <tr>
           <td><%= a.id %></td>
            <td><%= a.title %></td>
          </tr>
        <% end %>
        </table>
    
[/code]

これが上記のように引っ張ってくるテーブルが異なるので、カラム名を指定しちゃうとviewに反映ができないため、これを動的に取得するにはどのようにすれば良いのでしょうか。

もしくは参考になるサイトがあればご教授いただけると助かります。


CC BY-SA 4.0
2016-09-10T10:48:12.560
28803
2020-01-10T20:35:19.930
2020-01-10T20:35:19.930
32986
18743
question
ruby-on-rails ruby rails-activerecord
railsのテーブル結果のviewのテーブル表示について


クラスメソッド `columns` でカラム名などを得る (`a.class.columns`) ことができます。

[code]

    <% @a.each do |a| %>
      <% a.class.columns.map(&:name).each do |n| %>
        <%= a.send(n) %>
      <% end %>
    <% end %>
    
[/code]

他に考えられる方法:

  * 一部のカラムだけ違って、カラムが存在しない場合に空白表示で良いのであれば try を使う (`a.try(:title)`)
  * モデルが違うのであれば、異なる変数に入れて判定する


CC BY-SA 3.0
2016-09-11T06:24:55.653
28820
2016-09-11T06:24:55.653
76
28803
answer