-3

首先,我是 Rails 的新手,我的英语不是很好,所以请多多包涵:)

我为 5.2 版本更新了我的 Rails 并安装了活动存储。我可以上传图片或附件,效果很好。问题是当我尝试获取图像时,它们需要大约 30 秒到 60 秒才能出现在屏幕上。这不正常,所以我肯定做错了什么。

我的安装过程如下:

rails active_storage:安装

轨道数据库:迁移

'模式':

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

“存储.yml”:

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

在 'config/environments/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>

最后是我的索引:

<% @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)
  • 红宝石 2.3.1p112
  • 导轨 5.2.0

网络选项卡:如您所见,获取图像需要很长时间。 网络

日志:我也包括了日志,但是 TBH 我不太了解那里,所以也许你可以检测到错误。 日志第 1 部分日志第 2 部分日志第 3 部分日志第 4 部分

我不知道我是否没有做某事或者我做错了什么,但事实是当我加载我的索引页面时,我的图像需要很长时间才能显示出来......

希望可以有人帮帮我。先感谢您。

4

1 回答 1

0

我发现了问题。在我的 config/environments/development.rb 中,每次更改控制器上的某些内容时,我都有此命令不重新启动服务器: config.reload_classes_only_on_change = false

如果我删除该行,一切都会顺利进行(除非我在控制器中更改某些内容,否则我必须重新启动服务器 xD)

此致!

于 2018-05-30T14:24:43.807 回答