好的,所以我正在创建一个哈希,我需要将id添加到hash中。这是我的代码
h = Hash.new {|h1, k1| h1[k1] = Hash.new{|h2, k2| h2[k2] = []}}
@result, today = [ h, h.dup], Date.today
Request.find_all_by_artist("Metallica", :select => "DISTINCT venue, showdate, LOWER(song) AS song, id").each do |req|
# need to insert the req.id in the hash somewhere
idx = req.showdate < today ? 0 : 1
@result[idx][req.venue][req.showdate] << req.song.titlecase
end
有关如何执行此操作的任何建议
这是我在视图中的循环
<% @result.each do |venue, date| %>
<li>
<a href="#"><%= venue %></a>
<% date.each do |key, song| %>
<%= key %>
<ul class="acitem">
<% puts key.inspect %>
<% puts song.inspect %>
<% songs.each do |each_song, count| %>
<li><%= each_song %> <%= each_song %></li>
<% end %><% end %>
</ul>
</li>
<% end %>
我需要拥有每个请求的ID ....任何想法
答案 0 :(得分:2)
如果您推送整个记录而不仅仅是标题,那么在迭代歌曲列表时您将可以访问此信息。
@result[idx][req.venue][req.showdate] << req
然后您可以像在视图中一样使用它:
<% songs_requests.each do |song_request, count| %>
<li id="song_<%= song_request.id %>"><%= song_request.song.titlecase %></li>
<% end %>
你粘贴的视图和控制器中定义的结构似乎没有完全匹配,所以我试图在这里绘制一般图片。