显示来自rails中的collect的数据

时间:2012-07-06 11:19:32

标签: ruby-on-rails ruby activerecord

我目前的模型可以描述如下:

歌曲可以通过分配获得许多列表 分配属于歌曲和列表 通过分配,Setlists可以在其中包含许多歌曲

歌曲有标题,艺术家和音乐键。

基本上我正在设置新的设置列表视图,音乐家可以从库中选择任何现有的歌曲来添加到设置列表。我想沿着这些方向做点什么:

     <thead>
        <th>Title</th>
        <th>Artist</th>
        <th>Root Key</th>
    </thead>
    <tbody>
      INSERT CODE HERE TO DISPLAY DATA
    </tbody>

目前我正在使用以下代码获取数据,但我不知道是否有办法将其分成表格中的相关单元格:

<% songs = Song.all.collect {|s| [ s.title, s.artist, s.key ] }  %>
<% songs.sort! %>

我不确定这是不是这是最好的方法,所以如果有人可以提出一个太棒的替代方案。提前谢谢!

2 个答案:

答案 0 :(得分:4)

获取数据是控制者的责任。

def index
  @songs = Song.select([:title, :artist, :key]).all
end

并查看:

  <tbody>
      <% @songs.each do |song| %>
        <tr>
          <td><%= song.title %></td>
          <td><%= song.artist %></td>
          <td><%= song.key %></td>
        </tr>
      <% end %>
  </tbody>

答案 1 :(得分:0)

我设法解决了以下问题:

<tbody>
          <% songs.each do |n| %>
            <tr>
              <td><%= n[0], '#' %></td>
              <td><%= n[1], '#' %></td>
              <td><%= n[2], '#' %></td>
            </tr>
          <% end %>
      </tbody>

我仍然不确定这是否是最佳做法,所以如果有人知道更好的方法,请告诉我。谢谢:))