Ruby on rails Json Jbuilder v/s呈现:Json方法

Ruby on rails Json Jbuilder v/s呈现:Json方法,ruby-on-rails,json,ruby,Ruby On Rails,Json,Ruby,在尝试发送json响应时,使用render方法比使用jbuilder方法有哪些好处,反之亦然 例如: render:json=>@boots v/s 在index.json.jbuilder中 json.array! @boats do |boat| json.boat_name boat.name end 我尝试了两种方法,但没有发现其中一种方法比另一种方法有任何明显的优势。原因可能是我的应用程序很小。因此,我想知道在大规模应用程序中它们之间是否有任何区别。Jbuilder提

在尝试发送json响应时,使用
render
方法比使用jbuilder方法有哪些好处,反之亦然

例如:

render:json=>@boots

v/s

在index.json.jbuilder中

json.array! @boats do |boat|   
    json.boat_name boat.name 
end

我尝试了两种方法,但没有发现其中一种方法比另一种方法有任何明显的优势。原因可能是我的应用程序很小。因此,我想知道在大规模应用程序中它们之间是否有任何区别。

Jbuilder提供了用于生成JSON的DSL。它包括一个模板引擎,允许您使用帮助程序和条件创建复杂的响应

示例

我们可以通过添加
render

def显示
@article=article.find(参数[:id])
呈现json:@article
结束
现在重新加载页面时,我们将看到文章的JSON表示

{"author_id":1, title:"hello", etc}
如果您想要定制响应,可以使用
as_json
like

   format.json { render json: @article.as_json(only: [:id, :name, :content], include: [:author, {comments: {only:[:id, :name, :content]}}]) }

使用JBuilder 这是可行的,但是我们使用的代码不是很漂亮。我们可以在模型中重写as_json,但这不会更漂亮

json.id @article.id
json.name @article.name

可以在JBuilder中使用任何自定义

感谢您可以从他们的“Jbuilder为您提供了一个简单的DSL,用于声明JSON结构,这比操纵巨大的哈希结构要好。当生成过程充满条件和循环时,这尤其有用。”。在您的情况下,呈现单个资源是很简单的。但是,如果您想要呈现将多个资源混合在一起的复杂JSON响应,那么使用DSL可以使该过程更易于管理。