Драгоценный камень rails_sortable может быть решением, которое вы ищете. Это гем-обертка для сортируемой библиотеки jquery (https://jqueryui.com/sortable/).
Это позволит вам изменить порядок вопросов путем перетаскивания.
Добавьте следующие гемы в файл гемов и запустите пакетную установку
gem 'jquery-rails'
gem 'jquery-ui-rails'
gem 'rails_sortable'
Добавьте следующие операторы require в файл application.js
//= require jquery
//= require jquery_ujs
//= require jquery-ui/widgets/sortable
//= require rails_sortable
Теперь вам нужно добавить сортировку столбца к вашей модели Вопросов (я предполагаю, что здесь ваша модель называется Вопрос), скажем «сортировать» или «позиция». Это будет позиция / порядок конкретного вопроса
А затем добавьте следующее в файл Question.rb (модель)
class Question < ApplicationRecord
include RailsSortable::Model
set_sortable :sort # Indicate a sort column
# If you do NOT want timestamps to be updated on sorting, use the
following option.
# set_sortable :sort, without_updating_timestamps: true
end
При получении данных вопроса в контроллере, упорядочить их по столбцу сортировки
class QuestionsController < ApplicationController
def index
@questions = Question.order(:sort).all
end
end
А на виду
<table>
<tbody class="sortable"> <!-- sortable target -->
<% @questions.each_with_sortable_id do |question, sortable_id| %>
<tr id="<%= sortable_id %>"> <!-- Needs id tag on sorting
elements -->
<td><%= question.id %></td>
<td><%= question.content %></td>
<td><%= question.category_id %></td>
<td><%= question.sort %></td>
</tr>
<% end %>
</tbody>
</table>
И, наконец, в файле JavaScript,
$(function() {
$('.sortable').railsSortable();
});
rails_sortable github page: https://github.com/itmammoth/rails_sortable