Rails сортирует изображения по позиции - PullRequest
0 голосов
/ 23 января 2019

Я хочу иметь возможность сортировать изображения по позиции

Я использую ruby ​​2.5.0, rails 5.2.2, mongoid, 'jquery-ui-rails' и Attachinary (https://github.com/ipatovanton/attachinary/tree/position) для изображенийupload.

projects_controller.rb

class ProjectsController < ApplicationController
  def sort
    params[:image].each_with_index do |id, index|
      Attachinary::File.where(id: id).update_all(position: index + 1)
    end
    head :ok
  end
end

project.rb

class Project
  include Mongoid::Document

  has_attachments :images
end

rout.rb

resources :projects do
    collection do
      patch :sort
    end
end

application.js

jQuery(function() {
  $(document).on('turbolinks:load', function(){
    $('.attachinary-input').attachinary()

    $("#images").sortable({
      update: function(e, ui) {
        Rails.ajax({
          url: $(this).data("url"),
          type: "PATCH",
          data: $(this).sortable('serialize'),
        });
      }
    });
  });
})

show.html.erb

<div id="images" class="grid" data-url="<%= sort_projects_path %>">
  <% @project.images.order(position: :desc).each do |image| %>
    <div id="image_<%= image.id %>" class="box">
      <div class="box-image">
        <%= cl_image_tag(image.path, width: '250', height: '250', crop: 'thumb') %>
      </div>
    </div>
  <% end %>
</div>

Когда я пытаюсь перетащить изображение, я получаю следующее сообщение. Но ничего не происходит:

Started PATCH "/ projects / sort "для 127.0.0.1 в 2019-01-23 18:19:46 +0300 Обработка в ProjectsController # sort as / Параметры: {" image "=> [" 5c4827691996da1fef832f5d "," 5c4827691996da1fef832f6e», "5c4827691996da1fef832f5e", "5c4827691996da1fef832f5f", "5c4827691996da1fef832f60", "5c4827691996da1fef832f61", "5c4827691996da1fef832f62", "5c4827691996da1fef832f63", "5c4827691996da1fef832f64", "5c4827691996da1fef832f65", "5c4827691996da1fef832f66", "5c4827691996da1fef832f67", "5c4827691996da1fef832f68", "5c4827691996da1fef832f69",«5c4827691996da1fef832f6a "," 5c4827691996da1fef832f6b "," 5c4827691996da1fef832f6c "," 5c4827691996da1fef832f6d "," 5c4827691996da1fef832f5c |]} MONDlocalhost: 27017 |squarely_development.find |НАЧАЛО |{"find" => "users", "filter" => {"_ id" => BSON :: ObjectId ('5c472c2e1996da1d037f57fb')}, "sort" => {"_ id" => 1}, "limit" => 1, "singleBatch" => true, "lsid" => {"id" =>}} MONGODB |localhost: 27017 |squarely_development.find |УСПЕШНО |0,001 с Выполнено 200 ОК за 6 мс

Обновление: Если я использую ActiveRecord и gem 'pg', все работает

Но мне нужно это решение для работы с Mongodb

У кого-нибудь есть мысли или идеи по этому поводу?

Спасибо

...