`
文章列表
Assets Pipeline 有什么好处,不用会怎样        怎样禁止Assets Pipeline:            不用当然可以,你可以在config/application.rb中将它干掉:            config.assets.enabled = false         Assets Pipeline 好处:            ...
本来一直都是用rails自带的webrick做本地开发的,但是自从ruby升级到1.9.3后,用rails3.2.5开发的时候,每次启动3000端口,运行程序后总是有一大堆的waring: WARN  Could not determine content-length of response body. Set content-length of the response or set Response#chunked = true,很是烦人。除此之外,每次一个简简单单的get请求都要很长时间才能反应过来,即在页面请求已经发出去了,但是你tail日志发现,日志要很长时间才会反映出来,这个过程大 ...

RoR部署相关参考

Ruby on Rails的部署方案基本上都是由两层结构组成,前端做请求的分发,后端以多个Ruby进程接受并处理请求,主要的差别便是其中的通讯协议,比如使用FastCGI 或者是HTTP.这里讨论的局限于一台服务器,所以我不称之为架构方案,而仅仅是部署配置方案。 前端的选择:    Apache        Apache功能十分强大,稳定性也十分好,是全球市场占有率最高的Web服务器。与它搭配的Rails部署方案也有很多,如:      Apache+mod_ruby:类似于mod_php、mod_python,将Ruby解释器作为一个模块加载到Apache中。(mod_ruby已经停止更 ...
    正向代理:       正向代理,也就常说的代理,他的工作原理就像一个跳板。简单的说,我是一个用户,我访问不了某网站,但是我能访问一个代理服务器,这个代理服务器呢,他能访问那个我不能访问的网站       于是我先连上代理服务器,告诉他我需要那个无法访问网站的内容,代理服务器去取回来,然后返回给我。       结论就是,正向代理,是一个位于客户端电脑和原始服务器(origin server)之间的服务器,为了从原始服务器取得内容,客户端向代理发送一个请求并指定目标(原始服务器),然后代理向原始服务器转交请求并将获得的内容返回给客户端。客户端必须要进行一些特别的设置才能使用正向代理。   ...
attr_protected、 attr_accessible 解析 1:为什么使用这两个方法:       我们提交一个表单,该表单中有一些不可以让用户提交的字段,例如‘激活(active)’字段、‘用户权限(purview)’字段,但是怀有恶意的用户可以模拟表单提交这些属性,可以随意的给自己权限,而我们控制器中的取得属性的代码是Account.new(params[:account]),这句代码,会接受所有的用户模拟提交的account下的信息,此时我们不希望发生的事情发生了,我们要防止这种情况的发生,可以使用以上两个方法。 2:方法解释:    attr_protected: ...

NewRelic

NewRelic是一家提供Rails性能监测服务的网站, NewRelic提供了不同级别的监测功能,免费的是Lite版本,最高有Gold版本. New Relic工具有两种运行模式: (1)Production 模式:当您的工程以生产模式运行时,您可以在rpm.newrelic.com 网站上实时对它进行监督。 (2)Developer模式:当您的工程以开发模式运行时,您可以在本地localhost:3000/newrelic网页上查看到性能分析数据。 New Relic工具安装步骤(默认Rails 3版本): 1. gem install newrelic_rpm 2. 在Gemfi ...
    tmux是GUN screen的替代品,它比screen有很多方便的地方,下面我就来数显tmux的使用方法,我用的是ubuntu,所以安装tmux直接利用apt-get install tmux就可以安装这个服务了,一个tmux服务可以开启多个session,一个session可以开多个窗口,一个窗口可以分多个子窗口,下面是一些常用方法:     tmux默认的前缀操作都是ctrl + b ,当然你也可以自己设置为更合适的键。我还是比较习惯默认的C + b 的,所以我没有进行快捷键设置。     tmux                   #开启tmux服务     tmux ls ...
声明:本文转载自http://ruanwz.github.com/2010/02/25/eigenclass.html Ruby中对象的实例变量(instance_variable)是放在对象中,而对象的方法(instance_methods)则是放在对象的类里。我们可以在irb里用下面的命令来验证: » “abc”.methods == String.instance_methods => true 在ruby里所有都是对象,因此String应该也是对象,下面的命令也应该返回true: » String.methods == String.class.instance_metho ...

单例模块儿

#单例模块,存在的意义就是在模块被载入类时,给类添加类方法和创建对象实例等 module   Singleton   #这个方法在模块被载入类时调用,传入的参数是  类对象   def self.included(base)      #这个操作把另一个模块直接添加到Class对象上。类对象上的方法就是类方法。尽管模块中的方法是模块的实例方法。     base.extend(SingletonClass); #让类对象引入另外一个模块:SingletonClass     puts("Singleton  Include!");     #创建类的实例,然后把类的new方 ...
ubuntu 安装 nginx 下载nginx源码包(从http://wiki.nginx.org/NginxChs上) 编译nginx需要指定pcre,zlib,openssl,既然我的系统没有安装这些包,我也不安装deb的包了,直接运行 sudo apt-get install libssl-dev  libepcre3  libepcre3-dev 然后也将nginx-0.6 ...
顺差:100元进口原材料,加工后120卖出,中间赚20,这个20就是顺差。但是因为中国招商引资,把大量的外资引入到中国,这些企业当中有相当一部分再进行原材料加工再出口的贸易,即这20块的顺差里面,有相当一部分是让外资 ...

ruby super

ruby 中super和super()的区别 我们经常要在子类的initialize方法中调用super和super()。 从语法上说super和super()是有微妙区别的。 super不带括号表示调用父类的同名函数,并将本函数的所有参数传入父类的同名函数; super()带括号则表示调用父类的同名函数,但是不传入任何参数; 演示代码如下:   class SParent       def initialize *args           args.each {|arg| puts arg}       end   end     class SChild < SPa ...
Ruby提供了两种不同的I/O方法。 第一种就是我们一直在用的RUBY的内核模块中的gets,open, print, printf, putc, puts, readline, readlines, 以及test。做为一直以来都在使用的standard input和standard output,我就不多做解释了。只要说一句大家就明白了,上面的函数如果出现在C中,那么实现就和C的语法一样,如果出现在JAVA中,你就直接使用JAVA的写法去调用,完全OK。 第二种方法就要体现出Ruby自己的东西了:I/O对象。接下来,我们就来看一下I/O对象的几类。还是从我们最常用的一个子类开始吧:File。 ...
==回调方法和钩子方法 回调和钩子是相当常见的元编程技术。在Ruby程序运行过程中,当特定的事件发生时,将调用这些回调和钩子方法。特定事件是指: * 调用一个不存的对象方法 * 类混含一个模块 * 定义类的子类 * 给类添加一个实例方法 * 给对象添加一个单例方法 * 引用一个不存在的常量 以上的每个事件,都可以编写一个回调方法,在该事件发生时,该回调方法被执行。这些回调方法是针对某个对象或某个类的,而不是全局的。 ===method_missing 给对象调用一个方法,对象没有这个方法时,则会抛出NoMethodError异常,这时就可以使用method_missing来拦截。 class ...
可调用对象: 可调用对象是一个对象,可以给该对象发送call消息,让它执行定义在其中(通常是在一个代码块中)的一些代码。Ruby中主要的可调用对象是方法、Proc对象和lambda。 Proc对象 用一个代码块来实例化Proc类,可以产生一个Proc对象。 pr = Proc.new {puts "Inside a Proc's block"} 这里的代码块是不是会马上执行,只是作为Proc对象的一个定义体保存了下来。如果要执行它,就要发送call消息给这个对象。 pr.call #Inside a Proc's block 作为闭包的Proc对象 首先我们应该清楚:方法 ...
Global site tag (gtag.js) - Google Analytics