Ruby on Rails: как сделать так, чтобы Each_do_with_index не обновлял индекс моего объекта? - PullRequest
0 голосов
/ 03 сентября 2018

Я пытаюсь отобразить мои объекты large_group, чтобы семестр отображался в семестре с соответствующими параметрами. Однако, если я редактирую один из моих объектов large_group, он, похоже, обновляет индекс этого объекта. Например, редактирование Большой группы 1 изменит ее индекс с 1 на 7.

<% @large_group.each_with_index do |large_group, index| %>
        <tr class="borderless">
            <% if index == 0 || large_group.semester != @large_group[index - 1].semester %>
                <td class="test_font"> <%= large_group.semester %> </td>
                <% else %>
                <td></td>
            <% end %>

            <h1><%= puts "#{large_group} at index #{index}"%></h1>

            <td class="nicer"> <%= link_to "large group " + large_group.session_number.to_s, large_group_path(large_group)%> </td>
            <td class="nicer2"> 
<%= large_group.date.strftime("%m/%d")%> </td>

А вот и моя большая группа_контроллеров

class LargeGroupsController < ApplicationController
    before_action :set_large_group, only: [:show, :edit, :update, :destroy, :shuffle, :reset, :add_or_reassign]

def index
        @large_group = LargeGroup.all
        respond_to do |format|
            format.html
            format.json
          end
    end

def update

        if @large_group.update_attributes(large_group_params)
            flash[:notice] = "Successfully updated #{@large_group.session_number}."
            redirect_to large_group_path 
        else 
            flash[:error] = "Error in editing Large Group #{@large_group.session_number}"
            redirect_to large_groups_path
        end 
    end 

    def edit
        respond_to do |format|
            format.html
            format.js
        end
    end

как мне убедиться, что индекс не обновляется после попытки отредактировать мой объект?

1 Ответ

0 голосов
/ 03 сентября 2018

Я думаю, что по умолчанию выполнение LargeGroup.all возвращает записи на основе значения updated_at в порядке возрастания. Измените код действия индекса следующим образом:

@large_group = LargeGroup.order('created_at ASC')

Если вы хотите, чтобы они были в последнем созданном заказе, измените 'ASC' на 'DESC'.

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