4

私は現在、コントローラーにこのメソッドを持っています:

def show
  property = Property.find(params[:id])
  respond_to do |format|
    format.xml { render :xml => property.to_xml(:except => [:address1, :address2, :analysis_date, :analysis_date_2, ...]) }
    format.json { render :json => property.to_json(:except => [:address1, :address2, :analysis_date, :analysis_date_2, ...]) }
  end
end

このコードをリファクタリングしてrespond_withを使用できるようですが、出力をカスタマイズする方法がわかりません。返されたデータをカスタマイズするために、as_jsonメソッドとto_xmlメソッドをオーバーライドする必要がありますか?これらのメソッドをオーバーライドしても、プロパティの関連付けは正しく処理されますか?たとえば、プロパティには多くのテナントと多くの請負業者がいます。それらの要素も返す必要があるかもしれません。

コントローラーメソッドはこれに簡略化できると思います。

def show
  property = Property.find(params[:id])
  respond_with(property)
end
4

1 に答える 1

1

このrespond_withメソッドは2つの引数を取ります:resources*とa&blockなので、これを実行できるはずです。

def show
  property = Property.find(params[:id])
  respond_with(property, :except => [:address1, 
                                     :address2, 
                                     :analysis_date, 
                                     :analysis_date_2, 
                                     ...])
end

そして、私たちを正しく私たちにするには、コントローラーの上部respond_withに追加する必要があることを覚えておいてください。respond_to :html, :json, :xmlつまり、respond_withどのマイムに応答するかがわかります。

于 2011-12-11T11:09:46.100 に答える