ruby-on-rails-3 - 使用 Rails 计数器渲染集合中的部分内容

标签 ruby-on-rails-3

我正在渲染集合中的部分内容:

<%= 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>,&nbsp;
      </li>
    <% end %>
    

    ...但我不确定这会对间距问题产生任何影响。

    关于ruby-on-rails-3 - 使用 Rails 计数器渲染集合中的部分内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7590158/

    相关文章:

    ruby-on-rails - 在 Ruby 中验证电子邮件地址的最佳/简单方法是什么?

    ruby-on-rails - 不使用 update_page 和 rjs 更新页面

    ruby-on-rails - Ruby gem 命名约定

    ruby-on-rails - AssociationTypeMismatch 和 FactoryGirl

    ruby-on-rails-3 - Rails/ActiveModel 将参数传递给 EachValidator

    javascript - 使来自 rails 模型的伪属性也可以在 javascript 中访问

    ruby-on-rails-3 - 如何验证回形针的pdf,word,excel和纯文本的文件内容类型?

    ruby-on-rails - 在 spree 中,是否有可能将所有结帐流程步骤保留在一个页面中?

    ruby-on-rails - 为什么此模型不使用新的起点来对每个请求进行基于时间的查找?

    ruby-on-rails-3 - Rails 3 不在公用文件夹中查找 Assets On Show 方法