Попытка создать список списков для ряда сообщений в теме - PullRequest
0 голосов
/ 20 апреля 2019

Вот метод контроллера отображения сообщений для окна домашнего индекса, где описан шаблон:

 @sections = ['technology', 'nature']
    @briefsections = [['','','','',''], ['','','','','']]
    @sections.each_with_index do |section, i|
        @tag = Tag.where(name: section).first_or_create!
        @tag.posts.each_with_index do |post, num|
            @briefsections[i][num] = post || []
        end
    end

У каждого сообщения есть теги, поэтому у каждого тега есть сообщения, я должен добавить order_by, созданный впо убыванию и разделитель только для захвата 5 сообщений.и шаблон представления

<% @sections.each do |section| %>
 <% @briefsections.each do |post| %>
  <%= post.title %>
 <% end %>
<% end %>

У меня был метод контроллера, подобный этому ранее, но после ошибки решил изменить его, хотя в ошибках было только так много советов, чтобы включать:

@sections = ['technology', 'nature']
    @briefsections = ['', '']
    @sections.each_with_index do |section, i|
        @tag = Tag.where(name: section).first_or_create!
        @briefsections[i] = @tag.posts || []
    end

Первый выдает эту ошибку при просмотре из браузера, когда сервер работает:

undefined method `title' for ["", "", "", "", ""]:Array

А второй выдает эту ошибку в той же ситуации:

undefined method `title' for #<ActiveRecord::Associations::CollectionProxy []>

Я бы предпочелзахватите их в контроллере, чем итерируйте цикл в шаблоне, потому что мне нужно повторно использовать метод в другом окне контроллера.

Я привык к python, где вы могли бы просто вставить это в массив.Мне нужно только 5 постов, если это тоже возможная команда, только то, что от переменной требуется только такое количество, может сделать ее не просто прокси-сервером коллекции, а не собственной активной моделью записи.

Как надежно перемещатьсячерез многие ко многим, поэтому я могу перебирать их в шаблоне.Вложенные для циклов важны для легко воспроизводимых иерархий отображения, что является наиболее распространенным использованием структуры div, поэтому преодоление этого препятствия может применяться для гораздо большей части проекта.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...