将View块转换为helper方法

时间:2014-02-05 02:40:04

标签: ruby-on-rails ruby-on-rails-4 helper

我目前在我的视图中有一个Every / do块,但我更愿意将此代码推送到帮助器中,因为我需要在那里添加一些条件语句,所以我不想让我的视图混乱。这是我目前的观点,我一直试图编写一个辅助方法,到目前为止没有运气

<% update.voters_who_voted.each do |voter| %>
  <%= link_to profile_path(voter) do %>
    <%= thirty_avatar(voter) %>
  <% end %>
<% end %>

这将如何转化为具有此名称的帮助者

def find_voters_who_voted(update)
  ...
  ...
end

我试过这个没有运气

def find_voters_who_voted(update)
  update.voters_who_voted.each do |voter|
    link_to profile_path(voter) do
      thirty_avatar(voter)
    end
  end
end

1 个答案:

答案 0 :(得分:2)

请记住,您所做的只是显示此方法的返回值。看起来你希望它看起来像是视图的一部分,但这不是帮助者的工作方式。这样的东西会返回原始代码块的等价物

def find_voters_who_voted(update)
  update.voters_who_voted.collect do |voter|
    link_to profile_path(voter) do
      thirty_avatar(voter)
    end
  end.join
end