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升级指南。