2014-01-27 66 views
1

我想要的JBuilder集成到Rails 3.2的项目。我已经安装了这个gem,并且我已经在app/views/books/index.json.jbuilder上写过一个JBuilder文件。如何渲染JSON的JBuilder对Rails 3.2

这里是我的索引行动:

def index 

    @books = Book.all 

    respond_to do |format| 
     format.html # index.html.erb 
     format.json { render json: @books } 
    end 
    end 

这似乎调用Book默认as_json方法来呈现响应。我需要改变什么来告诉Rails使用我的JBuilder模板呢?

回答

7

删除你传递给format.json块。您正在使其忽略您的jbuilder文件,而是返回json: @books的结果作为响应。如果离开了拦网出:

respond_to do |format| 
    format.html # index.html.erb 
    format.json # no block here 
end 

然后Rails会回落到响应的默认处理,并期待在您的视图目录中的模板,它会发现JBuilder的文件和渲染作为响应。

+0

不工作我使用JSON格式是在一个jquery Ajax调用它试图找到HTML视图 –