Rails 5 上回形针的问题

Problems with paperclip on Rails 5

我在本地 mac 和 macOs 10.12 上用 Rails 5.0.0 和 Ruby 2.5 创建了一个新项目。现在我正在尝试将回形针添加到这个项目中,但仍然没有成功。

我的模型 class 看起来像这样:

class Photo < ApplicationRecord
  has_attached_file :file, styles: { big: '1280x1024>', small: '640x480>' }
  validates_attachment :file, content_type: { content_type: /\Aimage/ }, file_name: { matches: [/png\Z/i, /jpe?g\Z/i, /gif\Z/i] }, size: { less_than: 15.megabytes }
end

无论我尝试使用什么版本的回形针,我的项目中都没有回形针生成器,当我尝试调用模型或其方法时遇到这样的错误:

"NoMethodError (undefined method `has_attached_file' for Photo (call 'Photo.connection' to establish a connection):Class)"

当我按照此处的建议添加 "include Paperclip::Glue" 时 https://github.com/thoughtbot/paperclip/issues/705 错误更改为

NameError (uninitialized constant Photo::Paperclip)

我有什么办法可以绕过这个烂摊子吗? ><

Link 回形针问题 https://github.com/thoughtbot/paperclip/issues/2555

Link hamdi 在第一个评论中提供的是一个答案。

如果您遇到 Devise 或 Paperclip 之类的问题,请不要尝试添加 "include Paperclip::Glue" 或 Devise "extend Devise::Models"。解决此问题的唯一正确方法是回滚所有迁移,终止控制台,重新启动它,迁移,再次终止控制台,仅此而已!听起来很蠢,但它在工作 >> 图片上传在工作,回形针生成器在列表中。

对于来自 Rails 4 的所有人:

2.5.0 :001 > Photo
 => Photo (call 'Photo.connection' to establish a connection)

在 Rails 中的控制台行为完全正常 5. 从现在开始,在访问模型之前,您必须执行 'Photo.connection'。如果您不喜欢它,您可以随时通过添加

来修复它
console do
  ActiveRecord::Base.connection
end

给你的 config/application.rb