测试失败:关联 ID 应该是强制性的
Test fails: association id should be mandatory
我有以下集成测试:
def setup
@file = fixture_file_upload('test/fixtures/rails.jpg')
@user = users(:one)
@image = @user.build_image(image_file: @file)
end
test "should be valid" do
assert @image.valid?
end
test "image_file should be present" do
@image.image_file = " "
assert_not @image.valid?
end
test "user_id should be present" do
@image.user_id = " "
assert_not @image.valid?
end
最后的集成测试失败了——也就是说,@image
是有效的——我不明白。鉴于下面的迁移文件,user_id
不是必须的吗?
def change
create_table :images do |t|
t.references :user, index: true, foreign_key: true
t.string :image_file, null: false
t.timestamps null: false
end
end
.valid?
只检查您的模型验证,而不是模式验证。您需要做的是在图像模型中也添加验证
class Image < ActiveRecord::Base
validates :user, presence: true
end
加上您可能想要使用的任何其他验证。
我有以下集成测试:
def setup
@file = fixture_file_upload('test/fixtures/rails.jpg')
@user = users(:one)
@image = @user.build_image(image_file: @file)
end
test "should be valid" do
assert @image.valid?
end
test "image_file should be present" do
@image.image_file = " "
assert_not @image.valid?
end
test "user_id should be present" do
@image.user_id = " "
assert_not @image.valid?
end
最后的集成测试失败了——也就是说,@image
是有效的——我不明白。鉴于下面的迁移文件,user_id
不是必须的吗?
def change
create_table :images do |t|
t.references :user, index: true, foreign_key: true
t.string :image_file, null: false
t.timestamps null: false
end
end
.valid?
只检查您的模型验证,而不是模式验证。您需要做的是在图像模型中也添加验证
class Image < ActiveRecord::Base
validates :user, presence: true
end
加上您可能想要使用的任何其他验证。