ma question est - comment puis-je appliquer une commande aux tags dans cette vue? Le "default_scope" dans Tag.rb ne fonctionne pas ici.trier une association
Voir
<% @skills.each do |s| %>
<ul>
<% s.active_positions.collect{|p| p.tags}.flatten.uniq.each do |tag| %>
<li><%= link_to tag.name, s %></li>
<% end %>
</ul>
<% end %>
Contrôleur
@skills = Skill.includes(:active_positions => :tags)
modèles
class Skill
has_many :tags
has_many :positions
has_many :active_positions, :class_name => "Position", :conditions => {:hidden => false}
end
class Position
belongs_to :skill
has_and_belongs_to_many :tags
end
class Tag
belongs_to :skill
has_and_belongs_to_many :positions
default_scope :order => "sequence ASC"
end
SOLUTION
dans la vue ...
<% s.active_positions.collect{|p| p.tags}.flatten.uniq.sort_by{|tag|tag.sequence}.each do |tag| %>
Vous pouvez également raccourcir le code en utilisant to_proc 's.active_positions.collect (& : tags) .flatten.uniq.sort_by (&: séquence) .each do | tag | ' –
Merci pour l'indice – emrass