2012-12-17 9 views
6

Mam następujący kod w moim kontrolera:RoR: template brakuje błąd podczas renderowania 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 

Idąc do /tljson.json renderuje JSON ale nagłówek mówi „Szablon jest Missing; brakujący szablon ". Co ja robię źle?

Odpowiedz

7

wierzę, trzeba określić, że chcesz, aby uczynić :json w bloku

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

respond_to W przeciwnym razie będzie szukał pliku tljson.json.erb.

+0

Nie musisz wywoływać '# to_json'. – Hauleth

+0

Próbowałem to zrobić, zwraca ten błąd: SyntaxError w #tljson stats_controller.rb: 42: błąd składni, nieoczekiwany ":", spodziewając się "}" – 17andLearning

+0

naprawił ten błąd: format.json {render: json => @res} – 17andLearning

Powiązane problemy