gpt4 book ai didi

ruby-on-rails - JBuilder 模板永远不会被调用

转载 作者:行者123 更新时间:2023-12-04 00:35:45 27 4
gpt4 key购买 nike

在我的 Rails 4 应用程序中,我有一个结构如下的 API::V1::ClustersController:

class Api::V1::ClustersController < ApplicationController
respond_to :json

def index
@clusters = Cluster.all

render json: @clusters
end
class

在我的 app/views/api/v1/clusters/index.json.jbuilder View 中:

json.array!(@clusters) do |cluster|
json.extract! cluster, :id, :index
json.url cluster_url(cluster, format: :json)
end

在我的 route :

namespace :api, defaults: { format: :json } do
namespace :v1 do
authenticated :user do
resources :clusters
end
end
end

不幸的是,以下是我点击 http://localhost:3000/api/v1/clusters.json 时的 json 输出:

{
clusters: [
{
id: 1,
organization: null,
number: null,
name: "Roob Group",
created_at: "2014-07-16T17:41:09.214Z",
updated_at: "2014-07-16T17:41:09.214Z"
},
{
id: 2,
organization: null,
number: null,
name: "Lesch LLC",
created_at: "2014-07-16T17:41:09.302Z",
updated_at: "2014-07-16T17:41:09.302Z"
}
]
}

我不知道还能做什么。感谢您的帮助。

最佳答案

在这种情况下,您需要在 Controller 中使用 respond_with 而不是 render

class Api::V1::ClustersController < ApplicationController
respond_to :json

def index
@clusters = Cluster.all

respond_with @clusters
end
end

当您调用 render json: @clusters 时,就像您调用 render @clusters.to_json 一样,因此您的 Controller 不会呈现模板。如果你想使用 render,你可以将其包含在 respond_to block 中,但 respond_with 更优雅。

关于ruby-on-rails - JBuilder 模板永远不会被调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24795090/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com