2011-01-14 11 views
2

最近、Ruby 1.8.6とRails 2.3.4からRuby 1.9とRails 3.0.3にアップグレードしました。XMLの代わりにHTMLとして処理するRailsコントローラ

私は、次のコントローラがあります。私は 'load_progressメソッド' と呼ぶときしかし、私は次の取得

class ChartController < ApplicationController 

    before_filter :login_required 

    respond_to :html, :xml 

    def load_progress 

    chart.add(:series, "Memorized", y_memorized) 
    chart.add(:series, "Learning", y_learning ) 
    chart.add(:series, "Mins/Day", y_time  ) 
    chart.add(:user_data, :secondary_y_interval, time_axis_interval) 

    respond_to do |fmt| 
     fmt.xml { render :xml => chart.to_xml } 
    end 

    # Also tried 
    # respond_with chart 

    end 
end 

を:

はGET開始127.0.0のための "/ load_progressをXMLを。" 。 HTML としてChartController番号のload_progressによって 処理は、私も

respond_with chart 

にrespond_toブロックを変更しようとしている251ms

に受け入れられない406を完了したが、私は同じ応答を取得します。新しいrespond_with形式の新しいRailsのドキュメントをすべて読んだが、XMLレスポンスを引き出すことはできない。誰かがいくつか考えていることを切望している。

答えて

3

私は同じ問題を持っていたし、次のスニペットは、私の仕事:

respond_to :xml 
    def list 
    @items = Item.all 
    render :xml => @items 
    end 

406 can happen for several reasons - 通常、1つは、間違ったMIMEタイプを使用する場合 - が、上記のようにあなたはXMLレスポンスを作成するときrails guidesに基づきますすべてがレールで正しく記入されます。

上記のスニペットの欠点が1つあります。モデルのすべての属性が一覧表示されます。

あなたの例では、私はchart変数が/可視か初期化されているかどうかわかりません。

+3

は、さらにあなたが必要な場合があります。 – Zsolt

+1

はいのためにあなたのroutes.rbをXMLで問題を解決するようだ:フォーマット=>: – Andy

0

あなたがしていることが正しいように見えます。 Ruby 1.9.2を使用していますか?私は1.9.0に問題があることを知っていますが、私はそれがこれを説明するかどうかはわかりません。

+0

まあ、私はRuby 1.9.2です。 Railsがあまりにも困惑したことはほとんどありません。ルーティングでのフォーマットを強制的に、適切なコントローラ – Andy

関連する問題