0

我正在使用 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"

在这种情况下,错误是:undefined method `foo' for nil:NilClass

另一方面,当做类似的事情时:

render 'template'

在'template.jbuilder'中,我们有类似的东西:

json.partial! 'my_template'

它工作正常。

是的,我在我的规范组中使用“render_views”。

有没有人发现过这个错误?

4

1 回答 1

1

我刚刚发现了问题所在,我相信在这里分享它会非常有帮助,因为如果有人已经说过这将节省我很多时间......

引发错误的行是这一行:

json.style  Sass.compile(".homepage-hero{ #{ homepage.style } }")

错误是:

ActionView::Template::Error:
       undefined method `style' for nil:NilClass

我在想问题出在json.style,“json”对象可能为零,但问题出在homepage.style

经验教训:在渲染 jsons 时使用与 json 字段相同的方法名称不是一个好主意...

于 2014-02-06T14:17:03.930 回答