我有类别的投资组合过滤,以显示每个类别的作品。
它适用于data-filter
,可以触发这样的作品:
<span class="filter" data-filter=".<%= c.name.downcase.gsub(/[[:space:]]/, '') %>"><%= c.name %></span>
对于单独的类别,它可以正常工作,但我希望:active
选项卡包含所有的工作,因此我需要获取所有类别名称:
<span class="filter active" data-filter="<%= Category.all.map(&:name) %>">Todos</span>
如何检索类别名称,例如“name1 name2 name3”......?
谢谢!
答案 0 :(得分:2)
如果您想获得每个类别的name
属性的所有值,请执行以下操作:
Category.pluck(:name) #=> ['name1', 'name2',..., 'name10']
根据您所写的内容,您希望这些名称可以像这样分开&#34; name1 name2 name3&#34;。然后只需将名称与每个名称之间的空格连接起来:
Category.pluck(:name).join(' ') #=> name1 name2 ... name10
@Stefan提出了一个有效的观点。在视图层中使用Category.all
等逻辑被认为是不好的做法。相反,您应该将该逻辑放在负责呈现特定模板(视图)的控制器操作中。
即:
控制器中的
def works
@category_names = Category.pluck(:name)
end
在视图中
<span class="filter active" data-filter="<%= @category_names.join(' ') %>">Todos</span>