Ruby on Rails中的ActiveResource使用詳解_ruby專題

來源:互聯網
上載者:User

當 HTTP 響應是一個與存在的格式不同的格式時(XML 和 JSON),需要某些額外的格式解析,創一個你慣用的格式,並在類別中使用它。慣用的格式應當實作下列方法:extension, mime_type,
    encode 以及 decode。

    

module ActiveResource   module Formats    module Extend     module CSVFormat      extend self      def extension       'csv'      end      def mime_type       'text/csv'      end      def encode(hash, options = nil)       # 資料以新格式編碼並返回      end      def decode(csv)       # 資料以新格式解碼並返回      end     end    end   end  end  class User < ActiveResource::Base   self.format = ActiveResource::Formats::Extend::CSVFormat   ...  end

    若 HTTP 要求應當不擴充發送時,覆寫 ActiveResource::Base 的 element_path 及 collection_path 方法,並移除擴充的部分。

  class User < ActiveResource::Base   ...   def self.collection_path(prefix_options = {}, query_options = nil)    prefix_options, query_options = split_options(prefix_options) if query_options.nil?    "#{prefix(prefix_options)}#{collection_name}#{query_string(query_options)}"   end   def self.element_path(id, prefix_options = {}, query_options = nil)    prefix_options, query_options = split_options(prefix_options) if query_options.nil?    "#{prefix(prefix_options)}#{collection_name}/#{URI.parser.escape id.to_s}#{query_string(query_options)}"   end  end

    如有任何改動網址的需求時,這些方法也可以被覆寫。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.