对于每个语句,在下面使用to_sentence?

时间:2012-03-10 06:56:07

标签: ruby-on-rails

我对每个陈述都有以下内容:

    <% @post.votes.each do |vote| %>
      <span class='voted-user'>
        <%= link_to vote.user.username, vote.user %>
      </span>
    <% end %>

我希望拥有这样的用户名:

使用to_sentence方法的username1,username2,username3和username4。 但我不确定如何在这种情况下使用它。有什么建议吗?

2 个答案:

答案 0 :(得分:2)

您可以使用map方法而不是each来返回数组,并使用to_sentence对其进行处理。并使用content_tag来填补它的范围。

<%= 
@post.votes.map do |vote| 
  content_tag :span class: 'voted-user' do
    link_to vote.user.username, vote.user
  end
end.to_sentence 
%>

答案 1 :(得分:1)

<%= @post.votes.map do |vote| %>
  <% content_tag :span, :class => 'voted-user' do %>
    <% link_to vote.user.username, vote.user %>
  <% end %>
<% end.to_sentence.html_safe %>

虽然我建议把它全部变成帮手。

视图

<%= vote_links @post.votes %>

votes_helper.rb

def vote_links(votes)
  votes.map do |vote|
    content_tag :span, :class => 'voted-user' do
      link_to vote.user.username, vote.user
    end
  end.to_sentence.html_safe
end