首先我不知道这是否是一个错误。到目前为止,我一直在 rails development.rb 环境配置中使用此命令,以便该框检测我的文件的更改:
config.reload_classes_only_on_change = false
但是现在,使用 Rails 5.2 和 Active Storage,该命令会使服务器变慢,并且加载图像需要 10 到 40 秒。
这是一个错误吗?还有另一种方法可以让 vagrant/rails 检测我的文件中的更改,而不必每次更改某些内容时都重新加载服务器?
希望你能帮我!此致
ruby-on-rails vagrant vagrantfile ruby-on-rails-5 rails-activestorage
我的布局有:
//= require activestorage
现在在我的 jQuery 中,我试图引用 DirectUpload 类:
  // Instantiate the DirectUploader object
  const upload = new DirectUpload(file, url)
直接上传类在这里:https : //github.com/rails/rails/blob/b2eb1d1c55a59fee1e6c4cba7030d8ceb524267c/activestorage/app/javascript/activestorage/direct_upload.js
我目前收到此错误:
未捕获的 ReferenceError:DirectUpload 未在 new:210 处定义
我有一个使用Carrierwave来处理文件上传的应用程序,但确实喜欢ActiveStorage的简单性。在以前的日落开发中,有很多关于从Paperclip迁移到ActiveStorage的教程,但是从Carrierwave迁移到ActiveStorage方面我看不到任何东西。有没有人成功完成了迁移,并且可以指出正确的方向?
ruby-on-rails rails-migrations carrierwave rails-activestorage
我在 Post 模型中有 has_many_attached 图像关系。在 Post show 页面上显示图像时,我想按文件名对图像进行排序。如何按文件名排序?
例子:
<% @post.images.order("id DESC").each do |image| %>
是否可以通过诸如 active_storage_blob.filename 之类的东西按文件名排序?
我有一个 Rails 引擎和 Rails 应用程序,都运行 Rails 6.0.0.rc1。
引擎使用 ActiveStorage 附件定义模型,例如。
module Shop
  class Product < ApplicationRecord
    ...
    has_one_attached :image
    has_many_attached :images
  end
end
在引擎视图和应用程序视图中使用此模型并尝试调用= url_for(product.image)会引发异常undefined method 'attachment_path' for #<#<Class:XXX>:XXX>。product.image.attached?返回 true,因此附件可用。
这段代码是从 Rails 应用程序中提取的,它运行得很好。是否有针对 Rails Engine 模型附件的特殊路线助手或rails active_storage:install文档中未提及的除所需之外的任何设置?
ruby-on-rails rails-engines rails-activestorage ruby-on-rails-6
使用主动存储来存储工作正常的图像。我面临的问题是当我image_tag image显示#而不是图像时。
这是代码 products.rb
has_many_attached :photos
在 active_admin
row "Images" do |p|
  p.photos.attachments.each do |photo|
    image_tag photo
  end
end
它不显示图像。它检查 byebug 网址也很好,但图像不显示,它显示了这一点
只有这个有效
row "Images" do |p|
    image_tag p.photos.attachments.last
end
ruby ruby-on-rails activeadmin rails-activestorage ruby-on-rails-5.2
按照 Rails 指南,很明显,rails 的 ActiveStorage 支持“开箱即用”的 PDF 预览。
一些非图像文件可以预览:也就是说,它们可以作为图像呈现。例如,可以通过提取其第一帧来预览视频文件。开箱即用,Active Storage 支持预览视频和 PDF 文档。
它给出的代码示例是这样的:
<ul>
  <% @message.files.each do |file| %>
    <li>
      <%= image_tag file.preview(resize_to_limit: [100, 100]) %>
    </li>
  <% end %>
</ul>
我使用此代码上传了 pdf,但出现此错误:
ActiveStorage::UnpreviewableError
也许我错过了什么?
更新
好的,我想我知道问题出在哪里了。我应该在我的机器或“服务器”上安装像 muPDF 这样的第三方库才能工作。brew install muPDF不过对我来说跑步失败了。我会继续研究。
如何查询所有附加图像的用户以及图像的位置.variable??
例如
我可以做这个
# controller
@users = User.all
看法:
<% if user.image.attached? && user.image.variable? %>
<!-- display image -->
<% end %> 
@users我想知道是否可以简单地只查询那些同时满足user.image.attached?和条件的逻辑,而不是在视图中包含该逻辑user.image.variable?
这可以通过某些 Active Record 查询实现吗?
activerecord ruby-on-rails rails-activestorage ruby-on-rails-6
我查看了有关此错误的所有可能解决方案,但没有解决方案。
每次尝试上传图像时,都会收到此错误:
Unable to autoload constant ActiveStorage::Blob::Analyzable, expected /usr/local/lib/ruby/gems/2.5.0/gems/activestorage-5.2.2/app/models/active_storage/blob/analyzable.rb to define it。
宝石文件
source 'https://rubygems.org'
git_source(:github) { |repo| "https://github.com/#{repo}.git" }
ruby '2.5.1'
gem 'rails', '~> 5.2.0'
gem 'mysql2', '>= 0.4.4', '< 0.6.0'
gem 'puma', '~> 3.11'
gem 'sass-rails', '~> 5.0'
gem 'uglifier', '>= 1.3.0'
# See https://github.com/rails/execjs#readme for more supported runtimes
# gem 'mini_racer', platforms: :ruby
gem 'turbolinks', '~> 5'
gem 'jbuilder', '~> 2.5'
# Use Redis adapter to run Action Cable in production
# gem 'redis', '~> 4.0' …我升级了 Active Storage 以将变体记录存储在数据库中,使用
config.active_storage.track_variants: true
我用图像复制了一些项目,这导致了损坏的变体我正在生成像这样的变体
item.image.variant(resize_to_limit= [800, nil]).processed
由于这些损坏的变体/图像,我想从数据库中删除变体记录,同时保留原始图像,而不是重新创建变体
我怎样才能只删除变体?
ruby-on-rails ×10
ruby ×2
activeadmin ×1
activerecord ×1
carrierwave ×1
jquery ×1
vagrant ×1
vagrantfile ×1