Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/53.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ruby-on-rails-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails FactoryGirl表和列具有相同的名称,无法保存值_Ruby On Rails_Ruby On Rails 3_Factory Bot - Fatal编程技术网

Ruby on rails FactoryGirl表和列具有相同的名称,无法保存值

Ruby on rails FactoryGirl表和列具有相同的名称,无法保存值,ruby-on-rails,ruby-on-rails-3,factory-bot,Ruby On Rails,Ruby On Rails 3,Factory Bot,我有一个名为Image的Image模型,带有:text列,无法使用FactoryGirl保存Image字段 以下是相关的代码: image_spec.rb: let(:image) { FactoryGirl.create(:image) } subject { image } it { should be_valid } factories.rb: factory :image do image "123456789.jpg" end image.rb: attr_access

我有一个名为
Image
Image
模型,带有:text列,无法使用FactoryGirl保存
Image
字段

以下是相关的代码:

image_spec.rb:
let(:image) { FactoryGirl.create(:image) }
subject { image }
it { should be_valid }


factories.rb:
factory :image do
    image "123456789.jpg"
end


image.rb:
attr_accessible :image
validates :image, presence: true
当我运行测试时,我得到了错误

Failure/Error: let(:image) { FactoryGirl.create(:image) }
 ActiveRecord::RecordInvalid:
   Validation failed: Image can't be blank
对于上面的
图像规范rb
中的所有三行

我试过申请,但没能成功。(FactoryGirl为我的其他模特创作的作品效果很好)

如何分配给与其表同名的列?

尝试以下操作:

FactoryGirl.define do
  factory :image do |i|
    i.some_attr 'xxx'
    i.image "123456789.jpg"
  end
end
这样,您实际上调用了image对象的image=方法,而factory girls则认为您正在尝试创建关联

(不管怎么说,您确实为该列使用了一个令人困惑的名称:p、image_path或类似的名称会更好)