看了 @fredwu 的提交后被启发了,有了这个更精简的:
def user_read?(user_id)
user_id.in?(Rails.cache.read("Topic:user_read:#{self.id}") || [])
end
def is_last_reply?(user_id)
user_id.in?([self.last_reply_user_id, self.user_id])
end
#13 楼 @quakewang 赞同,在目前的场景下基于 User 来 cache 确实更好,不仅更符合自然思维且可以解决高并发问题。但如果仅仅使用 User 来 cache 当日后有“根据 Topic 来寻找所有读过的人”这样的需求时就无能为力了。
也许这样是更好的:
def user_read?(user_id)
uids = Rails.cache.read("Topic:user_read:#{self.id}")
result = false
result = true if !uids.blank? and uids.include?(user_id)
end
def is_last_reply?(user_id)
[self.last_reply_user_id, self.user_id].include?(user_id)
end
#9 楼 @zhuangbiaowei 从逻辑上来说这样确实更好。
def user_readed?(user_id)
uids = Rails.cache.read("Topic:user_read:#{self.id}")
result = 1
if uids.blank?
result = [self.last_reply_user_id,self.user_id].include?(user_id) ? 2 : 1
elsif uids.index(user_id)
result = 0
end
result = 2 if [self.last_reply_user_id,self.user_id].include?(user_id)
result
end
多个 return 确实不是很好,这个代码里面的一些 if 判断可以使用三元操作符来替代
多层 if 的嵌套大家通常是怎么 refactor 的?
坐等大家入职,热烈欢迎,多多益善啊!
可以把颜色变掉
淘宝里面 Ruby 大多用在测试上,另外有一些内部工具和小项目用了 Rails
越来越棒拉~~~
我觉得我好像进错地方了,这个是搞基贴嘛~~~那个,莫非 Ruby 能改变人的性取向?
我的云主机今天 Down 了一天了,囧。
这个确实很赞
一直用 Amazon SES
支持一个,MongoIC 可以省去很多事情,期望盛大云能做国内比较靠谱的云服务。
貌似只增加了 7 名成员嘛~
我在现场回帖~~~
就我个人而言,Unicorn 相比于 Thin 并没有太大的优势。当项目大了之后,更需要细粒度的部署,我会倾向于 Nginx + HA + Thin。这个内存的问题目前的解决方案最好是 resque 先去掉
我有啊~~发邮件 push 文件到 kindle
又拍的云存储其实严格意义上说来是 Cloud Storage + CDN,还是不错的。
赞不大包大揽!
TextMate 用户路过
哈哈~~~这个 Logo 很有意思。我觉得那个瓷器不够有 feel,应该找个更精致的
@了某人之后会有通知么?