rspec render_views不能与jbuilder部分一起使用

时间:2014-02-05 22:11:00

标签: ruby-on-rails rspec jbuilder

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

之前是否有人发现此错误?

1 个答案:

答案 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字段相同的方法名称不是一个好主意......