我想只存储一个特定模型,但不只是一个特定的对象而不是每个实例
E.g。给定类'Person',其属性为'name'(字符串)和'cool'(布尔值)。我们有两种模式:
person_bill:
name: bill
cool: false
person_steve:
name: steve
cool: false
现在我想把史蒂夫刚刚存下来,这很正常:
p1 = people(:person_steve)
p1.stubs(:cool? => true)
assert p1.cool? #works
但如果我再次从DB加载Model,则不会:
p1 = people(:person_steve)
p1.stubs(:cool? => true)
p1 = Person.find_by_name p1.name
assert p1.cool? #fails!!
这有效,但也会影响 Bill ,但不应该:
Person.any_instance.stubs(:cool? => true)
assert people(:person_bill).cool? #doesn't fails although it should
那么我怎么能只是史蒂夫存根,但无论如何?是否有条件的any_instance,如
Person.any_instance { |p| p.name == 'Steve' }.stubs(:cool? => true)
提前致谢!
答案 0 :(得分:7)
为什么不直接生成对象的方法?
Person.stubs( :find_by_name ).
returns( stub(:cool? => true) )
我认为这是正确(简单)的答案。我很确定没有像any_instance语法那样的东西。您可能会在序列语法中找到有用的东西:
你能举一个你想要的例子吗?祝你好运!