从数据库中获取字符串并将它们全部添加到一起

时间:2016-04-08 07:23:39

标签: ruby-on-rails ruby

我正在编写一个代码来计算所有字符串组合的长度,将它们加在一起等等,从数据库中收集它们。我不确定id如何将它们全部添加到变量然后将长度添加到该变量。以及如何显示

<h1>Course Rating Information </h1>

<p>
  <strong>Number:</strong>
  <%= @course.number %>
</p>
<p>
  <strong>Year:</strong>
  <%= @course.year %>
</p> 
<p>
  <strong>Name:</strong>
  <%= @course.name %>
</p>
<% if @course.comments.exists? %>
  <h2>Ratings</h2>
  <% @course.comments.each do |comment| %>
  <div id='box'>
    <p>
      <strong>Commenter:</strong>
      <%= comment.commenter %>
    </p>
    <p>
      <strong>Score:</strong>
      <%= comment.score %>
    </p>
    <p>
      <strong>Comment:</strong>
      <%= comment.comment %>
    </p>
    <p>
      <strong>comment length:</strong>
      <%= comment.comment.length %>
    </p>
    <p>
      <%= link_to 'Destroy Rating', [comment.course, comment],
        method: :delete,
        data: { confirm: 'Are you sure?' } %>

      <%= @charCount =+ comment.comment.length %>


    </p>
  </div>
  </br></br></br></br></br></br></br></br></br></br></br></br>
  <% end %>
<% else %>
  <h2>No ratings available</h2>
<% end %>

<%= puts #{@charCount} %>

<%= link_to 'New Comment', new_course_comment_path(@course) %>

<%= link_to 'Back to course listing', courses_path %>

@charcount是应该收集所有总长度的变量

2 个答案:

答案 0 :(得分:2)

您可以使用inject简单计算总长度:

@course.comments.inject(0) { |sum, c| sum + c.comment.length }

如果您想以自己的方式使用,则应在@charCount阻止之前定义each

@charCount = 0

答案 1 :(得分:1)

当然,不止一种方法可以给猫皮肤。在这里,我简单地将它们放在一个数组中并对它们求和:

@charCount = @course.comments.map(&:comment).join.length