2012-12-17 39 views
6

我在我的控制器下面的代碼:回報率:模板缺少錯誤而呈現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.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 

要/tljson.json呈現JSON,但標題寫着「模板丟失;缺少模板「。我究竟做錯了什麼?

回答

7

我相信你需要指定要呈現:jsonrespond_to

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

否則,它會尋找一個tljson.json.erb文件。

+0

您不必調用'#to_json'。 – Hauleth

+0

我試過這樣做,它返回這個錯誤:#tljson中的SyntaxError stats_controller.rb:42:語法錯誤,意外的':',期待'}' – 17andLearning

+0

修正了這個錯誤:format.json {render:json => @res} – 17andLearning