安装回形针后,Rails服务器无法启动。我在控制台中有此错误消息:
undefined method 'has_attached_file'.
在我的Gemfile中
gem "paperclip", :git => "http://github.com/thoughtbot/paperclip.git"
我在config / environments / development.rb
中尝试了这个config.gem "paperclip"
,这在我的config / application.rb
中Paperclip::Railtie.insert
我的计算机上安装了ImageMagik(我在Windows 10上)。任何线索?
安装回形针后,我在控制台中收到一条消息,说回形针现在与aws-sdk> = 2.0.0兼容。所以我也从github设置了最新的aws-sdk-ruby ......
编辑:在使用命令'which convert'
获取路径后也尝试了这个Paperclip.options[:command_path] = "/c/Program Files/ImageMagick-7.0.7-Q16/convert"
答案 0 :(得分:0)
我要改变的第一件事是使用版本号而不是直接从GitHub获取包。
Gemfile
中的:
更改强>
gem "paperclip", :git => "http://github.com/thoughtbot/paperclip.git"
要强>
gem "paperclip", "~> 6.0"
确保运行rails generate paperclip
命令(例如:rails generate paperclip photo image
),将所需的attachment
字段添加到数据库模型架构中。
获得attachment
字段后,您可以使用has_attached_file
将回形针安装到该字段(例如:has_attached_file :image
)。
不要忘记重启服务器。
PS:没有必要使用config.gem "paperclip"
和Paperclip::Railtie.insert
,我无法在GitHub Paperclip文档中找到它们,所以我确定它们现在已经停止了用于pre Rails 4应用程序。
P.P.S:我强烈建议你双重启动到Unix操作系统(无论是Linux发行版还是macOS),或者使用Cloud9等在线IDE,而不是使用Windows。这只是个坏主意,在处理项目时,您希望复制到生产环境的最小细节。
答案 1 :(得分:0)
尝试添加
include Paperclip::Glue
到你的模特。
答案 2 :(得分:0)
我现在都准备好了。显然数据库构造存在问题。对于其余部分,github https://github.com/thoughtbot/paperclip上的所有内容都得到了很好的解释,但是1)我正在执行一个缺少几个步骤的教程,2)Windows存在一个特定的问题。
删除所有表并从头再次迁移似乎已经解决了导致错误的最基本问题。
Windows用户,请注意与ImageMagik无关的file.exe的路径设置。您可以将此file.exe放在任何您想要的位置,在我的情况下
Paperclip.options[:command_path] = 'C:\Sites\utils\GnuWin32\bin'
非常感谢!