我正在渲染集合中的部分内容:
<%= render :partial => 'superlative', :collection => @profile.superlatives, :locals => {:superlative_count => @profile.superlatives.length} %>
以下是部分内容:
<li class="superlative"><span title="<%= superlative.name %>">
<%= superlative.body %>
</span></li>
我想渲染集合,以便:
and
开头使集合看起来像这样: body , body , body 和 body
我有一些使用下面的代码,但无法正确设置间距。有人可以帮忙吗?也许还有一种更简单的方法可以做到这一点?谢谢!
<% if superlative_counter + 1 == superlative_count %>
<li class="superlative"><span title="<%= superlative.name %>">
<%= "and #{superlative.body}" %>
</span></li>
<% else %>
<li class="superlative"><span title="<%= superlative.name %>">
<%= "#{superlative.body}," %>
</span></li>
<% end %>
最佳答案
我突然想到还有另一种方法可以做到这一点。使用 CSS 伪元素,您可以在需要的位置插入逗号和“和”。 Take a look in this fiddle .这里的主要警告是,至少在某些浏览器中,如果有人复制并粘贴列表,则不会包含伪元素的内容(即,即使他们看到“foo,bar”,他们也会得到“foo bar baz” ,和巴兹。”
但是,假设您想在 Ruby 中执行此操作,您会看到什么间距问题?我假设您正在使用 CSS 将 <ul>
进入一个句子 - 是否有特殊原因需要将每个单词放在 <li>
中?您的代码看起来不错,但我可能想通过将这些逗号和 'and' 移到 <span>s
之外来调整它。 :
<% if superlative_counter + 1 == superlative_count %>
<li class="superlative">
and <span title="<%= superlative.name %>"><%= superlative.body %></span>
</li>
<% else %>
<li class="superlative">
<span title="<%= superlative.name %>"><%= superlative.body %></span>,
</li>
<% end %>
...但我不确定这会对间距问题产生任何影响。
关于ruby-on-rails-3 - 使用 Rails 计数器渲染集合中的部分内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7590158/