夸机房的数据库到数据同步靠谱嘛?我怎么觉得数据库这种IO Critical
的东西,最好都在一个机房内,最好在一个机架上。
这个问题我能想到的也是把服务器放到香港,台湾,日本这样的国内/国外访问速度都能兼顾的地方。
#3 楼 @douya0808 在页面里面按一下“M”,会跳出这个:
先学用 markdown 排版,版式好看了,然后就有人有兴趣仔细阅读了,然后,解决方案就有了,呵呵。
#24 楼 @xds2000 这个问题太赞了,非常值得深思,研究并理解 AR 的 Scope 的设计理念。 我试着在没有深入研究的基础上,借花献佛用 José Valim 的话来回复你吧
You can chain scopes, but they will be evaluated at the moment you call them. That said, when you call started, it will execute the lambda, so it will have a frozen Time.now. In other words, chaining lambda scopes will likely give you the wrong result.
因为要 chain scopes,并 lazy evaluation,所以不能每次 dot 调用就立即执行并返回结果,所以借助 Proc 来封装一个计算的过程,直到最后需要的时候在执行,如果自行用self.method
级联的话,每次方法调用都会求值一次,没有 Lazy evaluation 的性能优势。
因为需要每次 dot 方法调用都返回 ActiveRecord::Relation
所以抽取这个模式成为通用模式,于是就变成了 named_scope,也就是后来的 scope 方法,用 scope 你不必自己管理方法的 return 结果。
上面两个“因为”是我对 Scoped 和 Proc 的灵活性的理解,还请有过研究的高人指正,呵呵。
#7 楼 @LeveyZhu 看不出什么问题,而且你的 Nginx 配置非常规范且完整,怀疑是否是权限的原因。 还有你在主题帖中是否贴出了完整的 unicorn.rb ? 可否对比参考下 ruby-china 的 unicorn.rb ?
另外如果你不通过 cap deploy,而是直接到 server 上,手动执行 kill -USR2 pid
也是一样的问题?
日本动漫我只能看带字幕的,不带字幕的我只能看懂爱情动作片。
#21 楼 @IchiNiNiIchi 真不好意思,我已经把节点信息修改了。
#20 楼 @jiffies Scope并不是一个新东西,在 Rails2 时代就引入了,的确用 class_method 就可以实现 scope 的方法,Scope 的好处是返回一个 ActiveRecord::Relation
,然后你可以在返回对象上继续执行其他的 scope 操作,类似 category.posts.published
With these scopes, you can use every method previously covered such as where, joins and includes. All scope methods will return an ActiveRecord::Relation object which will allow for further methods (such as other scopes) to be called on it.
这里的 scope 上用的 Proc,我觉得不应当作匿名函数来理解,而应该理解成 Procedure。
Proc 用意是传入参数后,只有在调用 scope 的时候在调用的 context 中去对 Proc 进行求值 (eval),而不是在定义 Scope 的 context 下求值。因为 Scope 方法在定义后即被 Cache 了,所以任何传入的变量都需要通过 Proc 在调用时传入。
如果是用普通方法去实现,的确不需要用 Proc,但是也失去了通过 Proc 获得的灵活性,这就是 Ruby 语言灵活性所在呀。
摘自Pragmatic.Metaprogramming.Ruby,不过这里我也不确定到底“Meta”的中文“元”应该怎么解释。
Metaprogramming is writing code that writes code.
Metaprogramming is writing code that manipulates language constructs at runtime.
大概但凡有能力的人,无论老幼,都被腾讯招聘去了吧? 这些年国内互联网市场和份额一块一块被腾讯蚕食,我虽然对腾讯无爱,但是我认为他们的实力确实强。
unicorn 你是怎么 restart 的? 这里是 ruby-china 的 deploy.rb
我建议你自行到服务器上执行下面命令,然后通过 ps 查看进程是自动被重启。
cd your/project/path
ps aux | grep unicorn
kill -USR2 `cat #{deploy_to}/current/tmp/pids/unicorn.pid`
ps aux | grep unicorn
注意观察前后 unicorn 的 unicorn master 的 pid 前后跟 tmp/unicorn.pid 是否一致。
#16 楼 @IchiNiNiIchi #15 楼 @kevinhua 到底看过文档了么?先看的文档还是先到这里来提问? 如果是先看过文档了,那么到底文档什么地方不明白? 或者是不知道文档在那里?
如果你的问题中包含以上信息,我相信你不会被人说RTFM
@zw963 谢谢你这么辛苦翻译,你的每一篇文章我都必须收藏之~ emacs downloading....
好吧...
class Class
def name_to_sym
self.to_s.downcase.to_sym
end
end
class Foobar; end
Foobar.name_to_sym
^_^
#16 楼 @xiaoeda 你好! 我是上海这边的社区组织者之一,我们非常希望能够邀请您参加我们的聚会。 时间是 4 月 10 日 晚上 7 点到 9 点 地点是 上海陆家嘴 具体活动信息在这里:http://ruby-china.org/topics/2256
#20 楼 @lihuazhang 这个一定!
#14 楼 @cqpx 恩,严格规定不建立新数组,而在原数组上裁剪的话,10 楼 @tassandar 的方法是对的。
我认为 Rails 的实现思路跟 Java 有所不同,可能我作习惯了 Rails 的应用,就很难想象“采用多 Moduel 的方案,即几个子系统共用 model moudel 和 service moudel,分开几个 web moudel 来开发。部署的时候,打成几个不同的 war 包来部署”
如果是我作类似的东西,我会考虑复用所有的 Model,但是不同的类型的用户在登陆后 redirect 到不同的路径下面,Controller 和 Views 可以分别开发,用不同的 controller 来对应不同的用户类型,不建议分开几个 project,这样复杂度和管理成本都太高,不利于快速开发。
在不创建新的数组的情况下,我怎么觉得应该用 Array#select
呢?
puts (1..100).to_a.select { |i| i % 3 == 0 }
@xiaoeda 欢迎,欢迎!
看了这个帖子后,今年第一次去 iteye 看了一眼,呵呵。