首先,我是Rails的新手,我的英语不是很好,所以请耐心等我:)
我更新了5.2版本的Rails并安装了活动存储 . 我可以上传图片或附件,但效果很好 . 问题是当我试图获取图像时,它们需要大约30秒-60秒才能出现在屏幕上 . 这不正常,所以我确实做错了什么 .
我的安装过程如下:
rails active_storage:install
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 / 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)
-
Ruby 2.3.1p112
-
Rails 5.2.0
网络选项卡:如您所见,获取图像需要太长时间 .
日志:我还包括日志,但TBH我不太了解,所以也许你可以发现错误 .
我不知道我是不是做了什么或者我做错了什么,但事实是当我加载我的索引页面时,我的图像需要很长时间才能显示出来......
希望可以有人帮帮我 . 先感谢您 .
1 回答
我发现了问题 . 在我的config / environments / development.rb中,每当我在控制器上更改内容时,我都有这个命令不重启我的服务器:config.reload_classes_only_on_change = false
如果我删除该行,一切顺利(除非我在控制器中更改某些东西,我必须重新启动服务器xD)
最好的祝福!