Rails 5.2 - Active Storage - слишком медленно? - PullRequest
0 голосов
/ 29 мая 2018

Прежде всего, я новичок в Rails, и мой английский не так хорош, поэтому, пожалуйста, потерпите меня:)

Я обновил Rails для версии 5.2 и установил активное хранилище.Я могу загружать изображения или вложения, и это работает хорошо.Проблема в том, что когда я пытаюсь получить изображения, они появляются на экране в течение 30-60 секунд.Это ненормально, поэтому наверняка я сделал что-то не так.

Мой процесс установки был следующим:

rails active_storage: установка

rails db: migrate

'схема':

create_table "active_storage_attachments", force: :cascade do |t|
  t.string "name", null: false
  t.string "record_type", null: false
  t.integer "record_id", null: false
  t.integer "blob_id", null: false
  t.datetime "created_at", null: false
  t.index ["blob_id"], name: "index_active_storage_attachments_on_blob_id"
  t.index ["record_type", "record_id", "name", "blob_id"], name: "index_active_storage_attachments_uniqueness", unique: true
end

create_table "active_storage_blobs", force: :cascade do |t|
  t.string "key", null: false
  t.string "filename", null: false
  t.string "content_type"
  t.text "metadata"
  t.bigint "byte_size", null: false
  t.string "checksum", null: false
  t.datetime "created_at", null: false
  t.index ["key"], name: "index_active_storage_blobs_on_key", unique: true
 end

'storage.yml':

local:
 service: Disk
 root: <%= Rails.root.join("storage") %>

Вкл. 'config / environment / development.rb':

config.active_storage.service = :local

Послечто я обновил свою модель:

class Vehicle < ApplicationRecord
 belongs_to :model
 belongs_to :manufacturer
 has_and_belongs_to_many :features

 has_one_attached :banner_image
 has_many_attached :images
end

Затем обновил мои параметры в контроллере:

def vehicle_params
  params.require(:vehicle).permit(:date, :kms, :power, :cc, :version, :transmission, :fuel, :category, :seats, :doors, :color, :condition, :warranty, :manufacturer_id, :model_id, {feature_ids: []}, :banner_image, images: [])
end

Следуйте по моей форме:

<p>
  <span>Imagen de apresentação: </span>
  <%= f.file_field :banner_image %>
</p>

<p>
  <span>Imagens: </span>
  <%= f.file_field :images, multiple: true %>
</p>

И наконец мойindex:

<% @vehicles.each do |vehicle| %>
  <%= link_to "Editar", edit_vehicle_path(vehicle) %> |
  <%= link_to "X", vehicle, method: :delete, data: {confirm: "Tem a certeza que quer eliminar este veiculo?"} %>
  <%= link_to vehicle do %>
    <% if vehicle.banner_image.attached? %>
      <%= image_tag (vehicle.banner_image) %>
    <% end %>
  <% end %>
  <%= vehicle.manufacturer.name %> <%= vehicle.model.name %> <%= vehicle.version %>
  <hr />
<% end %>

Я также установил Mini-Magick gem (и ImageMagick по мере необходимости), но я пока не использую его.

Версии:

  • ImageMagick 6.8.9-9)
  • Ruby 2.3.1p112
  • Rails 5.2.0

Вкладка "Сеть". Как видите, это занимает слишком много временичтобы получить изображения.Network

Журналы: я также включаю журналы, но TBH я не могу понять там много, так что, возможно, вы можете обнаружить что-то не так.logs-part-1logs-part-2logs-part-3logs-part-4

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

Надеюсь, кто-то может мне помочь.Заранее спасибо.

1 Ответ

0 голосов
/ 30 мая 2018

Я нашел проблему.В моем config / environment / development.rb у меня была эта команда, чтобы не перезагружать мой сервер каждый раз, когда я что-то изменяю на контроллере: config.reload_classes_only_on_change = false

Если я удаляю эту строку, все работает гладко (кроме случаев, когдаЯ что-то изменить в контроллере, я должен перезагрузить сервер XD)

С уважением!

...