2014-05-26 2 views
0

, так как мне нужно подсчитать количество циклов, которые этот цикл выполнит, можете ли вы рассказать мне, какой метод подходит для count в такой ситуации? А также - поле topicality является полем «многие ко многим» и отображает более одной записи, например: 4 8 10 2 Мне нужно было бы суммировать и подсчитать их, и сумма должна быть делена на их счет.Как суммировать и подсчитать элементы в поле зрения (Rails 4)?

<% s.courses.each do |c| %> 
    <%= c.skills.topicality %> 
    <%= link_to c.title, c %> 
<% end %> 

Я надеюсь, что мой explenation смысла, насколько я гугл есть sum метод и метод count, но ни один из моих попыток использовать их не имел никакого успеха.

Не могли бы вы показать мне, как это сделать?

спасибо.

ответ

1

Я не уверен, что понял вопрос, но я могу дать несколько советов ...

Если вы хотите, подсчет количества элементов в коллекции это лучше всего использовать .size 95% от время в рельсах. Итак, s.courses.size должен предоставить вам, сколько у вас курсов. Если вы используете .count, вам гарантированно удастся получить другую базу данных, даже если она не нужна. Использование .size не будет запрашивать базу данных, если коллекция ранее была загружена.

Если вы хотите иметь индекс, когда вы проходите курсы, вы можете использовать s.courses.each_with_index do |c, index|. Это будет отслеживать, к какой итерации вы подключаетесь.

Если вы хотите суммировать стоимость в коллекции курсов, вы можете использовать s.courses.sum(:some_attribute). Это будет делать суммирование в базе данных. Если topicality представляет собой массив целых чисел, вы можете суммировать их с помощью простого c.skills.topicality.sum.

Смежные вопросы