加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby-on-rails – Rails寻找JSON请求的模板

发布时间:2020-12-16 20:11:18 所属栏目:百科 来源:网络整理
导读:在我的路线.我有: resources :workouts 在我的训练控制器我有: def show respond_to do |format| format.html format.json { render :json = "Success" } endend 但是当我去/workouts/1.json时,我收到以下内容: Template is missing Missing template wor
在我的路线.我有:
resources :workouts

在我的训练控制器我有:

def show
  respond_to do |format|
    format.html
    format.json { render :json => "Success" }
  end
end

但是当我去/workouts/1.json时,我收到以下内容:

Template is missing

Missing template workouts/show,application/show with {:locale=>[:en],:formats=>[:json],:handlers=>[:erb,:builder,:coffee]}. Searched in: * “/home/rails/app/views”

这似乎表明格式是应该的,但它仍在搜索视图.相同的代码在其他控制器中功能相同的设置正常.另外,对于html视图来说,去/ workouts / 1似乎工作得很好,虽然当格式化的格式被删除时,它也正确地渲染了html视图.

解决方法

看看渲染的源代码
elsif options.include?(:json)
        json = options[:json]
        json = ActiveSupport::JSON.encode(json) unless json.is_a?(String)
        json = "#{options[:callback]}(#{json})" unless options[:callback].blank?
        response.content_type ||= Mime::JSON
        render_for_text(json,options[:status])

注意第三行.如果值为:json是一个字符串,那么render将不会自动为该值调用to_json.

所以值将保持为字符串,渲染将继续搜索模板.

要修复,提供一个有效的哈希甚至为了尝试的目的.

format.json { render :json => {:message => "Success"} }

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读