2014-02-05 49 views
0

我使用Rails 3.2.16,rspec-rails 2.14.1和jbuilder 2.0.2,發現rspec在渲染jbuilder部分時不會產生「json」對象:rspec render_views不能用jbuilder partials

render :partial => 'my_partial' 

其中 「my_partial」 是_mypartial.jbuilder文件。它會拋出一個錯誤,就好像模板中使用的「json」對象不存在一樣。我的模板做了很簡單的,如:

json.foo "bar" 
json.bar "foo" 

的錯誤,在這種情況下,應該是:未定義的方法'富」的零:NilClass

在另一方面,做這樣的事情的時候:

render 'template' 

和內部 'template.jbuilder' 我們有這樣的:

json.partial! 'my_template' 

它工作正常。

是的,我在我的規格組上使用了「render_views」。

有沒有人抓過這個錯誤?

回答

1

我剛剛發現了什麼問題,我相信這將是非常有益的在這裏分享它,因爲這將有救了我大量的時間,如果有人已經說過這...

這是引發錯誤的路線是這樣:

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

錯誤是:

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

我想這個問題是在json.style,其中'json'對象可能爲零,但問題出在homepage.style

經驗教訓:使用與json字段相同的方法名稱時,渲染jsons不是一個好主意...