Ruby on rails 回形针附件大小验证失败,但大小是否有效?

Ruby on rails 回形针附件大小验证失败,但大小是否有效?,ruby-on-rails,paperclip,multipart,paperclip-validation,Ruby On Rails,Paperclip,Multipart,Paperclip Validation,我的模型 class Article < ActiveRecord::Base LOGO_TYPES = ['image/jpeg', 'image/png', 'image/gif'] VALID_LOGO_MESSAGE = 'Please attach a valid picture file containing your organization logo. Valid formats are JPG, PNG, and GIF' has_attached_fil

我的模型

class Article < ActiveRecord::Base
  LOGO_TYPES = ['image/jpeg', 'image/png', 'image/gif']
  VALID_LOGO_MESSAGE = 'Please attach a valid picture file containing your organization logo.  Valid formats are JPG, PNG, and GIF'

  has_attached_file :logo, :content_type => LOGO_TYPES,
  :path => ":rails_root/app/assets/images/uploads/articlelogos/:id/:style/:basename.:extension",
  :url => "/assets/uploads/articlelogos/:id/:style/:basename.:extension"

  validates_attachment_content_type :logo, :content_type => LOGO_TYPES, :message => VALID_LOGO_MESSAGE
  validates_attachment_size :logo, :less_than => 1.megabytes
end
按请求命中记录:

Started PUT "/articles/74" for x.x.x.x at 2012-01-15 17:44:20 -0600
  Processing by ArticlesController#update as HTML
  Parameters: {"utf8"=>"✓", "authenticity_token"=>"uI+OXmV3B/crOrUopbBxpRs242PzMVJY1uM/QBnHdlE=", "article"=>{"logo"=>#<ActionDispatch::Http::UploadedFile:0x000000081d70b0 @original_filename="test_logo.gif", @content_type="image/gif", 
  @headers="Content-Disposition: form-data; name=\"article[logo]\"; filename=\"test_logo.gif\"\r\nContent-Type: image/gif\r\n", 
  @tempfile=#<File:/tmp/RackMultipart20120115-30606-1wwkr21>>}, "commit"=>"Upload Now", "id"=>"74"}
于2012-01-15 17:44:20-0600开始为x.x.x.x推出“/articles/74”
ArticlesController处理#更新为HTML
参数:{“utf8”=>“✓", "真实性令牌“=>”uI+OXmV3B/crOrUopbBxpRs242PzMVJY1uM/QBnHdlE=“,”文章“=>{”徽标“=>”,“提交”=>“立即上传”,“id”=>“74”}
我添加了一些调试来显示临时文件

params[:article][:logo].inspect: #<File:/tmp/RackMultipart20120115-30606-1wwkr21>>
params[:article][:logo].size: 6531
params[:article][:logo]。检查:#>
参数[:文章][:徽标]。尺寸:6531
所以很明显,它被存储在服务器上,但回形针无法正确地检查大小

这可以在我本地的Mac电脑上以开发模式工作,但在Ubuntu下的生产上失败

有什么想法吗?谢谢


更新-删除大小验证可以像往常一样上载和存储文件

只是想知道如果将
:小于=>1.MB
更改为
:小于=>1.MB,会发生什么情况,而且您的类似乎没有扩展ActiveRecord或任何其他ORM,您也没有声明任何属性访问器,也许这是导致问题的原因您的正确,代码有ActiveRecord::Base,忘记包含在我的帖子中,现在已更正。更改为1.MB没有效果,感谢您的建议,虽然我不确定为什么会这样,但请尝试使用
:小于=>1048576
而不是
MB
帮助程序。它似乎正在检查是否低于1 KB。
params[:article][:logo].inspect: #<File:/tmp/RackMultipart20120115-30606-1wwkr21>>
params[:article][:logo].size: 6531