Ruby

关于Ruby on Rails路由配置的一些建议

当你需要加入一个或多个动作至一个 RESTful 资源时(你真的需要吗?),使用 member and collection 路由。 # 差 get 'subscriptions/:id/unsubscribe' resources :subscriptions # 好 resources :subscriptions do get 'unsubscribe', on: :member end #... »

ruby元编程之method_missing的一个使用细节

我们知道顶级域,定义域的self是啥? 代码如下: puts self    #main puts self.class #Object 我们知道当一个方法被调用的时候,如果没有对象接受,默认就是self,如: 代码如下: def tell_me_who     puts self end tell_me_who  #main ... »

用Ruby实现一个单元测试框架的教程

在去年的YOW Melbourne开发者大会上,我参加了一些研习班。这些研习班由@coreyhaines和 @rains负责,因此TDD(测试驱动开发)成为了主要讨论的内容。通常这不是一个问题,但是令人沮丧的是(考虑到这是2010年举办的开发者大会),那时上网还不是很方便,我刚装上linux的笔记本无法下载Rspec。幸运的是几周前,我决定自己写一个单元测试框架(因为我有这个能力:)),接着我就有... »

Ruby中一些常用的文件操作方法小结

初学Ruby,很多需要学习,现在开始尝试使用Ruby来写一个脚本,其中用到了很多文件相关的操作,这里阶段地整理一些。便于后续的再次查找。 文件或目录是否存在 代码如下: File.exist?(‘file_path’) 是否为文件 代码如下: File.file?(“file_path”) 是否为目录 代码如下: File.dir... »

浅析Ruby中的DATA对象

这段代码能运行吗? 这个DATA是什么东西? require 'erb' data = DATA.read max = 15_000 title = "hello world!" content = "hello world!\n" * 10 max.times{ ERB.new(data).result(binding) } __END__ <html> <head> &... »

ruby和pig处理流式文件实例

大数据操作中涉及到数据清洗步奏还是用脚本处理比较方便,下边介绍一下pig加载hdfs文件后调用ruby脚本处理数据,再返回数据流至pig中处理的一个简单案例。 注意:ruby的流式处理用到wukong这个gem包,相关下载: https://github.com/mrflip/wukong pig中加载分布式文件调用ruby流式处理: 代码如下: log = load ‘$INFILE... »

Ruby的基本语法学习总结

1、关键字 关键字不能用于定义变量或者常量,module,class,def , undef,defined?,if ,then,else,elsif,case ,when,unless,for,in,while ,until,next,break,do,redo ,retry,yield,not,and,or,true,false,nil,rescue,ensure,super,sel... »

Ruby中的变量学习总结

Ruby中的变量有几种形式,分别是局部变量、实例变量、类变量、全局变量,对于初学者来说,常常容易搞混,尤其像本人这种做java的,理解起来还是头痛,经过仔细辨别学习,将这几种变量的差异及使用场景总结如下: 一、命名方式 1.局部变量:小写字母或者“_”开头,如user,解释器解释到时才开始在内存中存在,一个良好的习惯是在进行变量定义时用nil进行赋值初始化,否则会出现类似undefined loc... »

ruby判断一个数是否为质数(素数)示例

ruby判断一个数是否为质数质数又称素数。一个大于1的自然数,如果除了1和它自身外,不能被其他自然数整除的数;(除0以外)否则称为合数 。根据算术基本定理,每一个比1大的整数,要么本身是一个质数,要么可以写成一系列质数的乘积;而且如果不考虑这些质数在乘积中的顺序,那么写出来的形式是唯一的。 代码如下:def prime?(num)  res = [1]  res <<... »

你应该知道的Ruby代码风格

一、空格与tab使用空格缩进(95.364%)使用Tab缩进(4.636%)基于 1,001,987 次提交二、最大行宽80字符(92.618%)120字符(5.893%)150字符(1.489%)基于 1,057,374 次提交三、运算符、冒号、花括号周围,逗号、分号后是否使用空格不使用空格(73.366%) 代码如下:sum = 1 +2a,b = 1, 21>2 ? true : fa... »

ruby 模块

 Ruby的模块非常类似类,除了: 模块不可以有实体  模块不可以有子类  模块由module…end定义. 实际上…模块的’模块类’是’类的类’这个类的父类.搞懂了吗?不懂?让我们继续看下去吧. 模块有两种用法.其一是将相近的方法和实体放在一个相对集中的域里.Ruby标准包里的Math模块就扮演... »

Rails实现字段加密存储

方案 存储前,加密后再存储到数据库 读取后,利用 KEY 进行解密 实现 ActiveSupport::MessageEncryptor 是 Rails 基于 openssl 封装实现的一个类,可用于对一个对象进行加密、解密操作。例如: salt = SecureRandom.random_bytes(64) key = ActiveSupport::KeyGenerator.new('passw... »

Ruby面向对象编程中类的方法与类的扩展

类方法 类方法其实质是生活在该类的单件类中的单件方法。其定义方法有三种,分别是: # 法一 def MyClass.a_class_method; end # 法二 class MyClass def self.anther_class_method; end end # 法三* class MyClass class << self def yet_another_class_met... »

详解Ruby中的单件方法和单件类

单件方法 Ruby允许给单个对象增加方法,这种只针对单个对象生效的方法,称为单件方法 示例代码 str = “just a regular string” def str.title? self.upcase == self end str.title? # => false str.methods.grep(/title?/) # => [:title&... »

以MVC的思维方式来理解Ruby on Rails框架的设计结构

在rails中,发送一个请求(/users)的处理全过程如下: 1)、浏览器发送请求(/users) 2)、Rails的 routes会把请求路由给users_controller的index方法 3)、users_controller回调用User Model获取所有的user 4)、User Model会从数据库中把所有的user读取出来, 5)、User Model把从数据库读取出来的所有u... »

详解Ruby on Rails中的mailer相关使用

    把 mails 命名为 SomethingMailer。 没有 Mailer 字根的话,不能立即显现哪个是一个 Mailer,以及哪个视图与它有关。     提供 HTML 与纯文本视图模版。     在你的开发环境启用信件失败发送错误。这些错误缺省是被停用的。 # config/environmen... »

Rails命令行常用操作命令简明总结

新增类 代码如下:ruby script/generate Model <类名> <字段1>:<类型>… ruby script/generate Model Item name:string age:integer 移除类 代码如下:ruby script/destroy Model 新增控制器 代码如下:ruby script/generate ... »

在阿里云 (aliyun) 服务器上搭建Ruby On Rails环境

1、阿里云的一键安装web全环境 下载一键安装web全环境 sh.zip 压缩包 上传至服务器,解压、执行脚本,具体步骤详见这里 $ mv sh.zip /home/tmp/ & cd /home/tmp $ unzip sh.zip $ chmod -R 777 sh & cd sh # 任意选择一种方法执行脚本 # 方法一 $ ./install.sh # 方法二 $ ./in... »

Ruby最简单的消息服务器代码

ser.rb复制代码 代码如下:require 'socket's = TCPServer.new 3333conn = s.acceptloop do puts conn.getsendclt.rb复制代码 代码如下:require 'socket's = TCPSocket.new 'localhost',3333loop do sms=gets.chomp s.puts smsend作者:H... »

Rails link_to 详解

例子: 代码: <%= link_to “Issues”, {:controller => “issue”, :action => “index”}, {:title => “Issues”} %> 事实上,html元素的属性都可以通过这样的方式来设置。比如添加一个clic... »

ruby 局部变量

 局部变量由小写字母或下划线(_)开头.局部变量不像全局和实变量一样在初始化前含nil值. ruby> $foo    nil ruby> @foo    nil ruby> foo ERR: (eval):1: undefined local&nbs... »

ruby 正则表达式 教程

我们再看一个更有趣的程序.这次我们来测试一个字符串是否和一个由简明模式(concise pattern)编码产生的描述相匹配. 在这些模式(pattern)里,一些字符或字符组合都有独特的意义,包括:  代码如下:[]  范围描述符 (比如,[a – z] 表示在a 到 z 范... »

redis集群搭建教程及遇到的问题处理

这样的话,相当于模拟出了6台机器了,然后在以这6个实例组建redis集群就可以了。对应redis的源码src目录下的redis-trib.rb,redis-trib.rb是redis官方推出的管理redis集群的工具,是基于redis提供的集群命令封装成简单、便捷、实用的操作工具。slot对于Redis集群而言,就是一个存放数据的地方,就是一个槽。 »

Ruby on Rails框架程序连接MongoDB的教程

前边有介绍mongodb的安装以及ror项目的搭建,现在进行一下整合。 1.创建项目 创建项目时不再使用rails active_record支持 rails new todo -O 2.我们将要使用MongoMapper来驱动MongoDB到Rails 编辑GemFile,增加下面的内容 gem"mongo_mapper" 然后  执行 bundle install 安装gem bun... »

Monkey Patch猴子补丁编程方式及其在Ruby中的运用

何谓猴子补丁(Monkey Patch)?在动态语言中,不修改源代码而对功能进行追加和变更。 使用猴子补丁的目的: 1、追加功能 2、功能变更 3、修正程序错误 4、增加钩子,在执行某个方法的同时执行一些其他的处理,如打印日志,实现AOP等, 5、缓存,在计算量很大,结算之后的结果可以反复使用的情况下,在一次计算完成之后,对方法进行替换可以提高处理速度。 Ruby的类都是开放类,即在类定义之后还可... »

Page 1 of 20123»