我未能对此进行谷歌搜索,所以我把它带到这里。 我已经在我的模型上覆盖了to_param,将它与id连接起来,以获得更漂亮,更安全的URL。我不知道这应该在我的测试中。似乎把它放到路由测试中就错过了这一点。我认为这会出现在模型的规格中:
#my model
class MyModel < ActiveRecord::Base
def to_param
[id,an_attr.parameterize].join("-")
end
end
#my model spec
describe MyModel do
mymodel = MyModel.create!(:an_attr => "test attr")
mymodel.to_param should == [mymodel.id,"test_attr"].join("-")
end
我得到的是:
Failure/Error: mymodel.to_param should == [mymodel.id,"test_attr"].join("-")
expected: "1-test_atttr"
got: #<MyModel id: nil, an_attr: nil, created_at: nil, updated_at: nil> (using ==)
一个模型实例......我必须在这里找到一些明显的东西 - 也许它对我来说已经很晚了--- 非常感谢。
答案 0 :(得分:2)
看起来你错过了to_param
之后的一段时间。
mymodel.to_param.should == [mymodel.id,"test_attr"].join("-")