Ich habe dieses sehr seltsame Problem heute Abend, wenn ich so etwas wie "Filter-Posts-by-multiple-tags"-Funktion war Gebäude.
In der Ansichtsvorlage:
<%
tags = Tag.all
selected_tags ||= nil
%>
<ul>
<% tags.each do |tag| %>
<% logger.info("selected_tags size:"+ selected_tags.size.inspect) %>
<li><%= link_or_span(tag, selected_tags) %></li>
<% end %>
</ul>
Im TagsHelper:
module TagsHelper
def link_or_span(tag, selected_tags)
selected_tags.delete(tag)
link_to tag.title, tag
end
end
Er gibt (im Protokoll) aus:
ausgewählte_tags Größe:2
ausgewählte_tags Größe:1
ausgewählte_tags Größe:0
Was ich erwarte:
ausgewählte_tags Größe:2
ausgewählte_tags Größe:2
ausgewählte_tags Größe:2
Ich denke, var "selected_tags" in der Ansichtsvorlage sollte jedes Mal in der Schleife unangetastet bleiben, da sie sich in einem anderen Bereich befindet, nicht wahr?
Die ENV:
- ruby 1.9.2p180 (2011-02-18 Revision 30909) [x86_64-linux]
- Rails 3.1.0.rc4