对类方法应用迭代并在Rails

时间:2018-03-23 20:22:52

标签: ruby-on-rails

我有一个班级位置。我想做的是在我的页脚做类似的事情:

<%= Location.all.each do |location| %>
 <ul class="footer-nav" id="foot">
  <li class="footer-list">
   <%= link_to location.name, location_path(location.name), class: "footer-location"%>
     </li>

问题在于,因为我正在拉类法,所以它给了我一切。因此,为了解决这个问题,我尝试创建以下帮助程序:

def footer
  Location.all.map(&:name).join(',')
end

这实际上会清除所有内容并给我一个位置名称列表但是。如何迭代然后将链接应用于这些位置?或者我完全错了吗?

1 个答案:

答案 0 :(得分:3)

<%=将其包含的语句的返回值输出到HTML文档。 <%执行语句但不向文档输出任何内容。

因此,

<%= Location.all.each { |l| ... } %>会将Location.all.each的返回值输出到文档,该文档是Location s的可迭代集合。假设您只想放置要放在块中的HTML,只需删除=

<% Location.all.each do |location| %>
  <ul class="footer-nav" id="foot">
    <li class="footer-list">
      <%= link_to location.name, location_path(location.name), class: "footer-location"%>
    </li>
  </ul>
<% end %>