实际上我使用rails作为我的REST API,我需要将我的对象转换为json但是当我尝试时我得到了这个错误:
<h1>Template is missing</h1>
<p>Missing template firms/show, application/show with {:locale=>[:en], :formats=>[:html, :text, :js, :css, :ics, :csv, :png, :jpeg, :gif, :bmp, :tiff, :mpeg, :xml, :rss, :atom, :yaml, :multipart_form, :url_encoded_form, :json, :pdf, :zip], :handlers=>[:erb, :builder, :arb, :jbuilder]}. Searched in:
* "/Users/allan/Desktop/Work/back/app/views"
* "/Library/Ruby/Gems/2.0.0/gems/activeadmin-0.6.0/app/views"
* "/Library/Ruby/Gems/2.0.0/gems/kaminari-0.16.3/app/views"
* "/Library/Ruby/Gems/2.0.0/gems/devise_invitable-1.5.5/app/views"
* "/Library/Ruby/Gems/2.0.0/gems/devise-3.5.4/app/views"
</p>
这是我的代码
def show
firm= Firm.find_by_subdomain(params[:subdomain])
if firm.present?
respond_to do |format|
@firm = firm
format.json { render :json => @firm.to_json }
end
end
end
我希望有人可以帮助我:)。
解:
def show
render json: Firm.find_by_subdomain(current_subdomain)
end
谢谢
答案 0 :(得分:0)
在查询路线时,尝试在查询结束时添加.json
。如果没有这个,它将尝试渲染html
,它将搜索您的案例中可能不存在的视图文件。
答案 1 :(得分:0)
模板丢失意味着您要求提供html视图,而不是执行json请求。
如果您想要始终返回json格式而不管格式参数如何,请执行以下操作:
before_action :set_default_response_format
protected
def set_default_response_format
request.format = :json
end
@source:Rails 4 - How to render JSON regardless of requested format?