2

最近、Ruby1.8.6およびRails2.3.4からRuby1.9およびRails3.0.3にアップグレードしました。

私は次のコントローラーを持っています:

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

ただし、「load_progressメソッド」を呼び出すと、次のようになります。

127.0.0のGET"/load_progress。xml"開始しました。ChartController#load_progressによるHTML 完了としての処理406251msで受け入れられない

また、respond_toブロックをに変更してみました

respond_with chart

しかし、私は同じ応答を受け取ります。新しいrespond_with形式に関するすべての新しいRailsドキュメントを読みましたが、XML応答を引き出すことができないようです。誰かがいくつかのアイデアを持っていることを必死に望んでいます。

4

2 に答える 2

3

同じ問題が発生し、次のスニペットが機能しました。

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

406はいくつかの理由で発生する可能性があります(通常は間違ったMIMEタイプを使用する場合)が、上記のようにXML応答を作成するときのレールガイドに基づいて、すべてがレールによって正しく入力されます。

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

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

于 2011-05-09T07:31:22.033 に答える
0

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

于 2011-01-14T21:12:20.597 に答える