Ruby on Rails中的ActiveResource使用详解_ruby专题

当 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

    如有任何改动网址的需求时,这些方法也可以被覆写。

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索rails
ActiveResource
ruby on rails、ruby on rails 教程、ruby rails、ruby on rails 安装、ruby on rails 指南,以便于您获取更多的相关知识。

时间: 2024-09-17 04:49:45

Ruby on Rails中的ActiveResource使用详解_ruby专题的相关文章

Ruby On Rails中如何避免N+1问题_ruby专题

N+1问题 N+1问题是数据库访问中最常见的一个性能问题,首先介绍一下什么是N+1问题: 举个例子,我们数据库中有两张表,一个是Customers,一个是Orders.Orders中含有一个外键customer_id,指向了Customers的主键id. 想要得到所有Customer以及其分别对应的Order,一种写法是 SELECT * FROM Customers; 对于每一个Customer: SELECT * FROM Orders WHERE Orders.customer_id =

Ruby元编程之梦中情人method_missing方法详解_ruby专题

我最近读了些文章(比如这篇),宣传在 Ruby 里使用 method_missing 的. 很多人都与 method_missing 干柴烈火,但在并没有小心处理彼此之间的关系.所以,我想来探讨一下这个问题: ** 我该怎么用 method_missing ** 什么时候该抵挡 method_missing 的诱惑 首先,永远不要在还没花时间考虑你用得够不够好之前,就向 method_missing 的魅力屈服.你知道,在日常生活中,很少会让你以为的那样亟需 method_missing: 日常

ruby中的双等号==问题详解_ruby专题

前两天在写代码的时候,突然收到警告说项目代码中存在 XSS 漏洞,遂立即根据报告的 URL 排查页面代码,虽然很快就修复了,而且同样问题的讨论两年前就有了,一般来说相对有经验的同学也应该都知道这个点,但是还是觉得有必要写出来,再次提醒一下其他小伙伴,避免踩坑. 问题根源 其中,在找到的漏洞出现的地方,都存在类似以下这样的 slim 代码: input class='xxx' value==params[:account] 问题就出在双等号 == 上,因为在 slim 跟 ERB 模板(其他模板比

centos系统下ruby on rails+apache+mysql 安装配置详解

客户的服务器,是Ubuntu + apache2 + ruby on rails,现在客户的服务器有的页面老是报500错误 ,ruby这门语言只是了解过,没有深入的研究.也从来没有搭建过ruby的服务器环境,还有就是客户为什么会用ubuntu来做服务器,我感觉很奇怪.我在CentOS上面装完ruby on rails后,我明白了. 前言,yum安装后的种种问题. 开始的时候,我是用yum来安装apache mysql ruby on rails等,装完后发现很多问题,用gem根本装不了rails

Ruby中的数组和散列表的使用详解_ruby专题

Ruby的数组(arrays)和散列表(hashes)是被索引的收集(indexed collections). 两者都存储对象的集合,通过键(key)来访问.数组的键是整数.而散列表支持以任何对象作为它的键.数组和散列表会按需调整大小来保存新的元素.访问数组元素是高效的,但是散列表提供了灵活性.任何具体的数组或散列表可以保存不同类型的对象. 使用数组字面量(array literal)--即方括号之间放一组元素--可以创建和初始化新的数组对象.有了数组对象,在方括号之间提供索引便可以访问单个元

Ruby on Rails的安装配置教程详解

学习与开发 Ruby on Rails 应用的过程是在本地电脑上完成的.也就是你需要在本地电脑上创建 Rails 项目,运行它,然后学习或去做真正的开发.两种方法,一是可以直接在本地电脑上安装 Rails 项目的所有工具,然后直接在本地电脑上运行 Rails 项目.另外, 我们可以使用 Docker 去 Compose 一个 Rails 项目. 在本地直接运行 Rails 项目 需求 我在 macOS 上测试了整个过程.你需要: 安装 Ruby 安装 Xcode 安装 rails 打开终端,用

Ruby里4种比较函数(equal?, eql?, ==, ===)详解_ruby专题

Ruby里面有4种比较方法,equal?, eql?, ==, ===,而且在不同的类里面表现的很不一样.在使用的时候也特别容易搞糊涂. 这篇博文将演示一些代码来讲解各个方法. == - 类意义上的 相等,需要每个类自己定义实现 在特定类中觉得两个对象是否相同,需要看业务上的逻辑表象,所有由程序员覆盖该方法的定义,决定两个对象是否相同. 比如 String 类,他是来计较实际的文字串是否相同,而不在意是否来自同一个内存区域. >> a = "abc" #=> &quo

Windows下Ruby on Rails开发环境安装配置图文教程_ruby专题

本文详细介绍如何在Windows配置Ruby on Rails 开发环境,希望对ROR初学者能有帮助. 一.下载并安装Ruby Windows下安装Ruby最好选择 RubyInstaller(一键安装包). 下载地址: http://rubyforge.org/frs/?group_id=167 . 我们这里下载目前较新的rubyinstaller-1.9.3-p0.exe 一键安装包.这个安装包除了包含ruby本身,还有许多有用的扩展(比如gems)和 帮助文档. 双击安装,安装过程出现如下

对优化Ruby on Rails性能的一些办法的探究_ruby专题

1.导致你的 Rails 应用变慢无非以下两个原因: 在不应该将 Ruby and Rails 作为首选的地方使用 Ruby and Rails.(用 Ruby and Rails 做了不擅长做的工作) 过度的消耗内存导致需要利用大量的时间进行垃圾回收. Rails 是个令人愉快的框架,而且 Ruby 也是一个简洁而优雅的语言.但是如果它被滥用,那会相当的影响性能.有很多工作并不适合用 Ruby and Rails,你最好使用其它的工具,比如,数据库在大数据处理上优势明显,R 语言特别适合做统计