#to_json 抛出"show.json.jbuilder missing"



在#show中我有此代码:

def show
  respond_to do |format|
    format.html { render :show }
    format.json { @my_item.to_json }
  end
end

private
def set_trip
  @my_item = MyModel.find(params[:id])
end

当我请求"/my_models/1.json"时,它会引发异常:

Showing app/views/my_models/show.json.jbuilder where line #1 raised:
Missing partial my_models/_my_model with {:locale=>[:en], :formats=>[:json], :variants=>[], :handlers=>[:jbuilder]}. Searched in:
  * "app/views"
  * "/home/fdsafds/.gem/ruby/2.4.2/gems/apitome-0.1.0/app/views"

为什么?我必须有jbuilder吗?为什么它不能简单地将对象转换为JSON?

您不必使用jbuilder

您需要以JSON格式块调用render。请参阅有关渲染JSON的文档。

2.2.8渲染json

JSON是许多AJAX库使用的JavaScript数据格式。铁轨 已内置支持将对象转换为JSON并渲染该对象 JSON返回浏览器:Render JSON:@product

您无需在要渲染的对象上调用to_json。 如果使用:JSON选项,渲染将自动调用TO_JSON 为你。

相关内容

最新更新