[英]Using rails jbuilder file in multiple locations
我正在构建一个Rails应用程序,并且我需要能够从api端点发送json,以便构建android应用程序。
目前,我可以从其他控制器获取所需的json,但我正在尝试将所有api调用压缩为一个api控制器。
我的JBuilder文件看起来像这样
json.array!(@rivers) do |river|
json.extract! river, :id, :name, :section, :difficulty, :cfs, :details, :state, :put_in, :take_out, :picture
json.has_alert has_alert? river
end
我的河流控制器索引操作当前正在使用它
def index
if !params[:commit].nil?
@rivers = search params
if @rivers.nil?
@rivers = []
end
else
@rivers = River.where(approved: true)
end
end
我有api river操作要使用的JBuilder文件的相同副本
def rivers
river_list = search params
if river_list.nil?
river_list = []
end
end
我希望能够通过jbuilder文件获取我的自定义json。 我已经能够使用api控制器渲染json
render json: river_list
但这给了我我实际上不想要的更多信息。 无论如何,无需使用jbuilder即可呈现自定义json。 重要的是我需要一个json数组
如果要渲染特定的jbuilder视图文件,则可以这样调用它
render json: "name_of_the_jbuilder_file"
所以你的河流方法看起来像这样
def rivers
river_list = search params
if river_list.nil?
river_list = []
end
render template: "jbuilder_filename"
end
请注意,您的jbuilder文件需要实例varialbe @rivers
,但是rivers
方法没有@rivers
实例变量,因此这将失败,您应该首先实例化实例变量以成功呈现json。
编辑
抱歉,请使用render template: "jbuilder_filename"
而不是render json
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.