试图理解为什么validates_presence_of测试失败

时间:2017-06-04 11:58:47

标签: ruby-on-rails rspec shoulda

我刚刚开始玩Rails(使用Rspec和Shoulda Matchers)来构建一个演示博客。

我刚刚开始,我的第一次测试失败但我不明白为什么。

我认为我已经正确设置了所有内容,但是当我尝试验证我的文章模型中是否存在标题但是它返回失败时

Shoulda::Matchers::ActiveModel::AllowValueMatcher::AttributeDoesNotExistError:
   The matcher attempted to set :title on the Article to nil, but that
   attribute does not exist.

我的模特看起来像这样......

class Article < ApplicationRecord
  # attr_accessor :title
  validates_presence_of :title
end

和我的考试......

require 'rails_helper'

RSpec.describe Article do
  it { should validate_presence_of :title }
end

如果我取消注释attr_accessor然后测试通过,但我知道Rails不需要它。

我做错了什么?

1 个答案:

答案 0 :(得分:0)

只要您的attr_accessor数据库表具有articles列,就不需要title

您可以在db/schema.rb

中查看