当给出非空白字段时,Rspec错误'field'不能为空

时间:2013-07-03 05:34:48

标签: ruby-on-rails ruby ruby-on-rails-3 rspec

在测试我的简单应用的照片模型时,我有一个非常错误的错误。

我的照片规格

describe Photo do
  before { @photo = Photo.create!(image: "5513770961_a73024a244_z.jpg", wraper: true, to_slider: true) }
  subject { @photo }

  it {should respond_to(:image)}
  it {should respond_to(:wraper)}
  it {should respond_to(:to_slider)}
  it {should be_valid}
end

当此规范执行时,它会返回一个奇怪的错误

Failure/Error: before { @photo = Photo.create!(image: "5513770961_a73024a244_z.jpg", wraper: true, to_slider: true) }
     ActiveRecord::RecordInvalid:
       Validation failed: Image can't be blank

我的测试数据库已准备好并加载,不能简单地弄清楚这个...... 谢谢你的帮助..)

照片模特:

class Photo < ActiveRecord::Base
  attr_accessible :image,  :gallery_id, :wraper, :to_slider

  belongs_to :gallery

  validates :image, presence: true

  mount_uploader :image, ImageUploader
end

1 个答案:

答案 0 :(得分:1)

请不要给图像名称提供像

这样的完整路径

使图像属性可访问

将此行添加到模型

attr_accessible:image

例子:---

before { @photo = Photo.create!(image: "#{Rails.root}/spec/images/5513770961_a73024a244_z.jpg", wraper: true, to_slider: true) }