mak*_*war 18 ruby-on-rails ruby-on-rails-3
在我的routes.rb身上:
resources :workouts
Run Code Online (Sandbox Code Playgroud)
在我的训练控制器中,我有:
def show
respond_to do |format|
format.html
format.json { render :json => "Success" }
end
end
Run Code Online (Sandbox Code Playgroud)
但是当我去/workouts/1.json时,我会收到以下信息:
模板丢失了
缺少模板锻炼/显示,应用/显示{:locale => [:en],:formats => [:json],:handlers => [:erb,:builder,:coffee]}.搜索:*"/ home/rails/app/views"
这似乎表明格式应该是它应该是但它仍在搜索视图.这个相同的代码在其他控制器中运行,具有相同的设置就好了.此外,转到/ workouts/1的html视图似乎工作正常,但它也format.html删除后正确呈现html视图.
Bil*_*han 18
看一下源代码 render
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])
Run Code Online (Sandbox Code Playgroud)
注意第三行.如果值为:json字符串,render则不会to_json自动为此值调用.
所以值仍然是字符串,render并将继续搜索模板.
要修复,请提供有效的哈希,即使是出于尝试目的.
format.json { render :json => {:message => "Success"} }
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
14516 次 |
| 最近记录: |