不加 self 相当于是给一个临时变量 remember_token 赋值,加 self,相当于是调用 remember_token=(...) 这个方法。2 者完全不同的。
vmc?是直接部署了 cloud foundry 么?如果是这样的话,真不错。
我也是这样觉得,特别是 Rails 3.2,加了很多不是每个应用都需要的 middleware,你可以根据情况写个 inititalizer 去除掉
quote: http://quake.iteye.com/blog/1473073
其实对于我们的应用来说,很多都是不需要的,比如整页 Cache/ETag/X-Request-Id 等,我们的应用都是动态请求,所以都是强制无 Cache,我列了一下可以去除的和他们的用途:
Rack::Cache 整页缓存
Rack::Runtime 记录X-Runtime(方便客户端查看执行时间)
ActionDispatch::RequestId 记录X-Request-Id(方便客户端查看请求具体在集群中的哪台执行)
ActionDispatch::RemoteIp 防止IP伪造(可以在web server上做)
ActionDispatch::Callbacks 设置callback
Rack::ConditionalGet 设置If-None-Match and If-Modified-Since
Rack::ETag 设置ETag
ActionDispatch::BestStandardsSupport 设置X-UA-Compatiblecd(可以在web server上做)
+1
我觉得这个 callback 里面返回 false 的陷阱,只要做过 rails 项目的人都会中招
大学第二外语是德语,比英语难太多了,学了一个学期以后果断放弃,希望这几个单词没有拼错: welkom duitsland rubyist :)
我的方案,写一个 initializer 来 patch Marshal 的 load 方法:
module Marshal
class << self
def load_with_constantize(value)
begin
Marshal.load_without_constantize value
rescue ArgumentError => e
_, class_name = *(/undefined class\/module (\w+)/.match(e.message))
raise if !class_name
class_name.constantize
Marshal.load value
end
end
alias_method_chain :load, :constantize
end
end
权限问题或者是 PATH 环境变量问题导致找不到 nice 或者 java 命令
gem "sunspot-rails-tester"
推荐 https://github.com/randym/axlsx 另外他有一个 rails 插件 https://github.com/randym/acts_as_xlsx
凑个热闹,用在线工具画的: http://www.customink.com/lab/
ruby 2.0 就会直接有内置 sample by weight 方法了 http://bugs.ruby-lang.org/issues/4147
试试看 shoes http://shoesrb.com/
amount 这类型的需求,可以直接用 database 的 default value
之前用的 X509 Cert 代码,PKey DSA 应该也是差不多的,改写一下试试看:
cert = OpenSSL::X509::Certificate.new(File.read("#{Rails.root}/cert/rsa.20140728.cer"))
cert.public_key.verify("sha1", Base64.decode64(sign), message)
Demo 很 Cool,介绍一下实现的细节吧,用了 websocket 和 spine.js?
ruby 1.9.3, need more unit test
string = "浏览器里面Chrome是不是比Firefox快?"
string.scan(/([^[[:ascii:]]]*)([[:ascii:]]*)([^[[:ascii:]]]*)/).flatten.map(&:strip).reject(&:empty?).join(" ")
=> "浏览器里面 Chrome 是不是比 Firefox 快?"
nohup rake &
try tn.cmd("listusers\n") ?
gitlabhq clone 了 github 的很多功能,适合分布式的多人协作项目,如果是团队内部那种需要集中式代码管理的项目,我推荐 http://www.scm-manager.org 安装和配置都非常简单,有 Restful 的 api,集成和扩展也很容易。
不是代表对自身对象的绑定,-@是 Fixnum 对象的方法:
1.methods.grep /@/
=> [:-@, :+@]
这个写法就是标准的 block 调用无参方法的简写,等价于:
[1,2,3].map{|n| n.-@()}
('A'..'Z').to_a.sample(4).join
['Jim', 'bush', 'Jim', 'Jim', 'Jim', 'bush', 'obama'].inject(Hash.new(0)) {|h, e| h[e] += 1; h}.sort_by{|e| -e[1]}
python 要和 ruby 比 文件、字符操作或者数组、Hash 操作的便利性绝对完败,要砸场还不如在性能上一棍子打死 ruby。
#6 楼 @gaicitadie order by 的 ruby 代码
[['china',37,26,11], ['usa',30,22,50], ['russia',30,33,20]].sort_by{|m| [-m[1], -m[2], -m[3]]}
[['china',37,26,11], ['usa',30,22,50], ['russia',30,33,20]].sort_by{|m| -(m[1] + m[2] + m[3])]}
jruby? 记得@dlee遇到过这个 bug,好像是 jruby 的 bug,不知道他后来怎么解决的。
"abc".bytes
不过如果你是要做 MD5 的话,直接用 Digest::MD5.hexdigest "abc" 就可以了,java 的 api 很多无人性的设计...