我有一个名为Page的模型,它有很多段落。这一切都有效,但我认为这是关于我进行一些测试的时间。由于原因,我需要计算一个页面的所有段落,+ 1,所以我知道如何编号下一段。我在我的模型中使用count_paragraphs方法执行此操作:
class Page < ApplicationRecord
has_many :paragraphs
def count_paragraphs
paragraphs.count + 1
end
end
到目前为止这么简单。这在我的控制器中工作正常,我用它来创建下一段。
@paragraph = @page.paragraphs.create(body: para_params[:body], num: @page.count_paragraphs)
如上所述这一切都有效。但在测试中,这不起作用:
it 'has a paragraph count of 1' do
expect(subject.count_paragraphs).to eq 1
end
it 'successfully counts paragraphs' do
subject.paragraphs.new(body: "hello", num: 1)
expect(subject.count_paragraphs).to eq 2
end
第一次测试通过,第二次没有。它始终返回1.当我绑定.pry测试时,如果我subject.paragraphs
,则会显示每个新段落,但如果我在模型中绑定.pry,paragraphs
只会返回[]
。所以我误解了关于模型关系的一些事情。
有谁知道我在这里做错了什么?