Tag: counter cache

Rails 3和Rspec:计数器缓存列在预期1时更新为2

我正在用Rspec测试一个名为Solutions的模型,它有很多喜欢。 解决方案存储它有多少喜欢(counter_cache)。 它有一个“likes_count”属性(和相应的db字段)。 当我创建一个与解决方案关联的Like记录时,我希望解决方案属性“likes_count”应该从nil更新为1.当我在控制台中执行此操作时,它可以正常工作。 但是当我运行规范时,我在控制台中执行相同操作,它将TWICE更新为“likes_count”字段,将其设置为2。 看一下(在控制台中) 工作 : irb(main):001:0> solution = Factory(:solution) irb(main):004:0> solution.likes_count => nil irb(main):006:0> like = Factory(:like, :likeable => solution) => # irb(main):007:0> solution.reload.likes_count => 1 看看规格结果不工作 : 1) Solution counter cache should be increased when a like is created Failure/Error: subject.reload.likes_count.should be 1 expected # => 1 got # => 2 […]

Counter_cache列的Rspec测试返回0

几天来我一直试图找到应该很容易做到的接缝的底部…然而我仍然对铁轨和ruby的世界很新,我只是不能解决这个问题。 ..:p 无论如何,我遇到的问题是我的模型中有一些:counter_cache列,这些列在手动测试时都非常好用。 但是,我想做TDD的事情,我不能缝在rspec测试他们的一些未知的原因? 无论如何这里是我的模型的一个例子(用户,评论和媒体): class User < ActiveRecord::Base has_many :comments has_many :media, dependent: :destroy end class Comment true belongs_to :user, :counter_cache => true validates :user_id, :presence => true validates :content, :presence => true, :length => { :maximum => 255 } end class Medium true has_many :comments, as: :commentable validates :user_id, presence: true validates :caption, […]