Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/54.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails RoR:呈现JSON时模板丢失错误_Ruby On Rails_Ruby_Json - Fatal编程技术网

Ruby on rails RoR:呈现JSON时模板丢失错误

Ruby on rails RoR:呈现JSON时模板丢失错误,ruby-on-rails,ruby,json,Ruby On Rails,Ruby,Json,我的控制器中有以下代码: def tljson (result = []) @stat_id = params[:stat_id] @rpm = FedoraRpm.find_by_name(@stat_id) @rpm.ruby_gem.historical_gems.each { |h| result << { :content => h.version, :start => h.build_date } } @rpm.bugs.eac

我的控制器中有以下代码:

def tljson (result = [])
  @stat_id = params[:stat_id]
  @rpm = FedoraRpm.find_by_name(@stat_id)
  @rpm.ruby_gem.historical_gems.each { |h|
    result << { :content => h.version, :start => h.build_date }
    }
  @rpm.bugs.each { |b|
    result << { :content => b.name + "<br><a href='"+b.url+"'>View on BugZilla</a>", :start => b.bz_id }
  }
  @res = result.to_json
    respond_to do |format|
    format.json { render @res.to_json }
    end
end
def tljson(结果=[]) @stat_id=params[:stat_id] @rpm=FedoraRpm。按名称(@stat\u id)查找 @rpm.ruby_gem.historical_gems.each{124; h| 结果h.version,:start=>h.build\u date} } @rpm.bugs.each{| b| 结果b.name+“
”,:start=>b.bz_id} } @res=result.to_json 回应待办事项|格式| format.json{render@res.to_json} 结束 结束
转到/tljson.json将呈现json,但标题显示“模板丢失”;缺少模板'。我做错了什么?

我认为您需要指定要在
respond\u to
块中呈现
:json

respond_to do |format|
  format.json { render json: @res }
end

否则它将查找
tljson.json.erb
文件。

您不必调用
\to\u json
。我尝试过这样做,它会返回以下错误:在#tljson stats\u controller.rb:42:语法错误,意外的“:”,预期的“}”@animeshtripath,您不知道您使用的是什么Ruby版本,所以回答者假设您使用1.9.x,现在已经稳定并投入生产。您必须使用已开始被弃用的1.8。如果您使用的是Rails 4.1,则必须添加gem“responders”和“~>2.0”。Rails将对此发出警告:
控制器级别的“respond_to”功能已提取到“responders”gem。将其添加到gem文件以继续使用此功能:gem“responders”和“~>2.0”有关详细信息,请参阅Rails升级指南。