首页 分类 关于我
ruby
Nginx 配置示例 工程师的产品观 理理File/Dir/Pathname(一) TracePoint介绍 ruby中的return 如何动态改变某个class的祖先链 ObjectSpace介绍 Rails日志实现探索(3) Rails日志实现探索(2) Rails日志实现探索(1) Rails中的request rescue exception in ruby 设计模式之观察者模式 require 的故事 ruby中的编码 研究ruby的一些小技巧 Rails中间件 ruby对象的序列化 ActiveSupport宝藏之MessageVerifier 如何写rakefile Ruby on Rails 环境及准备 基于Rack的项目初始化
git
如何移除某次提交之前的版本历史 Git 不常用的好用的命令 Git高级技巧之忽略文件
database
Mysql数据库编码 从mongodb向mysql迁移数据
工具
搭建ipsec服务
linux
Linux 常用查看命令

研究ruby的一些小技巧

关于类

class Exam < ActionView::Base
end
  • Exam.superclass 超类,顶级超类为BaseObject
  • Exam.ancestors 类包含的模块(包含类本身)
  • Exam.included_modules 类包含的模块(不包含类本身)
  • Exam.class_variables 类的类变量(默认包含继承的类变量,参数false为不包含继承的类变量)
  • Exam.constants 类的常数(默认包含继承的类变量,参数false为不包含继承的常数)
  • Exam.instance_methods 类的实例方法(默认包含继承的类变量,参数false为不包含继承的实例方法)

关于对象

a = Exam.new
  • a.class 对象的类
  • a.object_id 对象的“对象ID”,同名方法a.__id__
  • a.instance_variables 对象的实例变量
  • a.instance_variable_get :@xx 查看具体实例变量
  • a.methods 对象包含的方法,通过传递参数可以查看一定范围内的方法,其他几个方法:private_methods protected_methods public_methods singleton_methods

关于方法

def a.a_method
end
  • a.method(:a_method) 得到一个method对象;
  • a.method(:a_method).source_location 查看方法定义的文件及所在行;

© 2018 www.xinshengyin.com All rights reserved.

版权所有