我正在使用Rails 3.2.16,rspec-rails 2.14.1和jbuilder 2.0.2,并发现当使用以下代码渲染jbuilder部分时,rspec不会产生“json”对象:
render :partial => 'my_partial'
其中“my_partial”是 _mypartial.jbuilder 文件。它会抛出一个错误,好像模板中使用的“json”对象不在那里。我的模板非常简单,例如:
json.foo "bar"
json.bar "foo"
在这种情况下,错误是:未定义的方法`foo'代表nil:NilClass
另一方面,在做类似的事情时:
render 'template'
在'template.jbuilder'里面我们有类似的东西:
json.partial! 'my_template'
它工作正常。
是的,我在规范组中使用“render_views”。
之前是否有人发现此错误?
答案 0 :(得分:1)
我刚刚发现问题是什么,我相信在这里分享它会非常有帮助,因为如果有人已经说过这样的话会给我节省很多时间......
抛出错误的一行就是这一行:
json.style Sass.compile(".homepage-hero{ #{ homepage.style } }")
错误是:
ActionView::Template::Error:
undefined method `style' for nil:NilClass
我认为问题出在 json.style ,其中'json'对象可能为零,但问题出在 homepage.style !< / p>
获得的经验:在渲染jsons时使用与json字段相同的方法名称不是一个好主意......