Ror + Paperclip:为什么不工作?

时间:2010-02-04 16:28:10

标签: ruby-on-rails ruby paperclip

我已经将paperclip安装到我的项目中作为插件使用 ruby脚本/插件安装http://github.com/thoughtbot/paperclip.git

型号:

class Company < ActiveRecord::Base
   has_attached_file :logo, :styles => { :large => "300x300>", :medium => "100x100>", :thumb => "50x50>" }
   validates_attachment_content_type :logo, :content_type => image/jpeg, :message => "Incorrect logo file type!"
   validates_attachment_size :log, :max => 200, :message => "big file" 
end

但控制器方法返回: CompaniesController中的NoMethodError ##

的新未定义方法`has_attached_file'

如果我在模型类之前尝试“需要'paperclip'”,则返回: CompaniesController中的MissingSourceFile #new 没有这样的文件要加载 - paperclip

有什么问题?

4 个答案:

答案 0 :(得分:1)

paperclip Railscast是开始使用回形针的好来源,请尝试按照这些步骤告诉我们您的问题是否仍然存在。

答案 1 :(得分:0)

添加行:

config.gem "paperclip"

'config / environment.rb'应该解决这个问题,假设已经安装了gem。

答案 2 :(得分:0)

由于您已将paperclip安装为插件,请确认它已实际放置在您应用中的正确路径中。它似乎不太可能不正确,但我更愿意通过检查什么是有效而不是无效的方法进行故障排除:)

你应该有这样的文件夹结构:

RAILS_ROOT /供应商/插件/纸夹/ LIB / paperclip.rb

如果看起来像这样,rails应该在每次重启服务器时默认加载paperclip.rb。这是除非应用程序配置为默认情况下不加载所有插件。这些配置可以在config / environment.rb

中找到

我会查找以下任何条目:

config.plugins ...
config.plugin_paths ...
config.plugin_locators ...
config.plugin_loader ...

如果您发现任何类似的条目,则可能是问题的原因。

答案 3 :(得分:0)

可能是由于缺少ImageMagick安装。 Paperclip使用ImageMagick处理图像。要正确使用回形针,请确保已安装ImageMagick并且回形针可以访问它:

安装ImageMagick(如果您使用的是Mac OS X):

brew install imagemagick

告诉paperclip在哪里找到imagemagick,添加

Paperclip.options[:command_path] = '/usr/local/bin/'

到你的config / environments / development.rb

希望这有帮助。