在#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 为你。