【问题标题】:Rails Paperclip undefined method `validates_attachment'?Rails Paperclip未定义方法“validates_attachment”?
【发布时间】:2012-05-09 22:06:20
【问题描述】:

我从模型中的一些验证代码中收到错误消息。我的系统正在使用回形针将许多文件附加到帮助文章中,并且我知道我安装了回形针,因为我能够上传文件而不是验证它们。

这是我的模型:

class HelpAttachment < ActiveRecord::Base

  belongs_to :help

  has_attached_file :attachment, 
                    :styles => { :medium => "300x300>",
                                 :thumb => "100x100>" }

  validates_attachment :attachment, :content_type => [ 'image/png', 'image/jpg', 'image/gif', "application/pdf", 
                                    'video/mpeg', 'video/quicktime', 'video/x-ms-asf', 'video/x-msvideo', 
                                    'video/x-flv' ]


end

这是我尝试提交新附件时收到的错误消息:

NoMethodError in HelpsController#create

undefined method `validates_attachment' for #<Class:0x00000005581498>

如果我删除 validates_attachment 行一切正常,只是没有文件验证。

我的 gemfile 中有 gem 'paperclip' 并且我正在开发模式下运行。

有什么想法吗?

【问题讨论】:

  • 这可能是一个愚蠢的问题,但您的项目是 Ruby on Rails 3 吗?另外,你用的是什么版本的回形针?
  • 嗨,我使用的是 Rails 3.1.3,我认为因为我没有在我的 Gemfile 中为 rails gem 指定版本,所以它默认为可用的最新版本。

标签: ruby-on-rails ruby-on-rails-3 paperclip attachment


【解决方案1】:

根据github of paperclip,“新样式”验证器应该是这样的。这适用于回形针 3.0 及更高版本

validates :attachment, :attachment_content_type => { :content_type => ['image/png', 'image/jpg']}

【讨论】:

  • 您好本杰明,感谢您的回复。我试过了,但出现了一个新错误:Unknown validator: 'AttachmentContentTypeValidator' 我会检查链接
  • 我认为这意味着您使用的是旧版本的回形针
  • 哇,去看看吧。刚刚查看了我的 Gemfile.lock 文件,上面写着回形针(2.4.5).....天啊......我不知道你必须手动指定一个 gem 版本才能获得这样的最新版本...... . 如果我尝试升级,这会毁了我的应用程序,我只知道哈哈。
  • 使用此的新错误消息是:# 的未定义方法`image_col_name_content_type' 为什么旧方法不是全部向后兼容?除非进行主要版本升级,否则任何人都不应该修改工作代码 - 如果那样的话。
猜你喜欢
  • 2012-04-09
  • 1970-01-01
  • 2019-06-17
  • 2013-06-07
  • 2012-02-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多