我们每个项目都用...非常喜欢... 包括开源的 Railscasts-china 啦 https://github.com/pragmaticly/railscasts-china :)
I like your magnetic voice... :D 对时间的把握很是到位... 遇到意外问题快速的处理一下,如果不能快速处理就先放下。这点演示的时候很重要...
现场的时候 切屏太快看起来有点卡.... 特别是 白色黑色切换的时候.... 如果做 TDD,在 iterm 里用 vim,分屏 一边 coding 一边看测试... 那估计就爽的要死了... 当然这不是这一期所需要的 :D
主要还是手感变犀利了.... Type-s 是 realforce 最新研制的.... 目前代表了静电兼容按键的最高水平.... :D
#24 楼 @cisolarix weird... 似乎同一个文件在 mac 上要大些.... http://cl.ly/image/1t1b3B2f3K2K :)
#22 楼 @cisolarix 我又确认了一下 是 1.46 G 我这里速度也就是 30 来 k...
各位,请重新点击下载。现在是高清原版....
http://railscasts-china.com/episodes/kevin-open-class
@robin @jyz19880823 @fsword @ashchan @cisolarix @Zernel @robin
哎.... 看来我得去 七牛那里问问了,他们对文件大小没限制....
@cisolarix 做这个的初衷是,你发布一个你的作品,你的想法,甚至两个你想购买产品的对比...
然后邀请你的朋友来获得他们的 review,feedback,帮助你做出决定...
所以发送的东西都是 private 的.. 我们没有一个公共的 list 列出所有的东西。 如果想公开,你需要自己 share 出去这个 link :)
大致来讲就是这样一个工具...
Daniel 实际上发的是一个 HHKB Type-S 的 review...当然也可以理解为毒药...
不吃饭,不睡觉,参加 http://railsrumble.com/
其实这是个好问题。
赋值在 ruby 中相当于是调用方法,你并不是任何时候都可以方便的替换内容。所以需要 replace.给你个例子。
class A
attr_reader :a
def a=(a_string)
@a = a_string + "!"
end
end
a = A.new
a.a = "test"
puts a.a
a.a.replace("test")
puts a.a
~/Desktop $ ruby test.rb
test!
test
呀...都是成都的兄弟.... 支持一个...成都招个 Ruby/Rails developer 不容易啊... 我觉得可以放眼学校,着手自己培养 :)
居然错过了,ash 同学周末生活很丰富呀。赞。
加油:)
#9 楼 @karma 晕....哈哈~ :D 你这个情况 资源和时间的消耗主要是大量的插入 DB 造成的.. 我用 activerecord 比较多...遇到大量的插入我会使用 https://github.com/zdennis/activerecord-import 效果非常明显...
不太确定是否 mongo 有同样的东西,你搜搜看看? :)
你的第二个问题,是个很大的问题。我试着来回答你一下。 你的 model 过胖有几个问题需要思考。
这个逻辑是否应该在 model,有没有可以分离出来的部分。 由于大家天天听 胖 model 瘦 controller,导致很多人把一些应该在 controller 里的逻辑也放在 model 了:比如像发送一封邮件,比如 mass assignment 的 checking。 再如有些 callback 里的逻辑是不是可以放在 observer 里。像我前面提到的,如何呈现数据是不是可以抽出一层 presenter 层。
有些不紧密和 model 相关的逻辑并且有重用空间的是不是可以抽出一个 module 放在其他的位置。
如果你单个方法就很长你就要考虑是否有可重用的部分要抽取成多个方法。(我们一般极少有方法会超过 50 行)
如果以上问题你都做好了,那说明这个 model 就该这么大... :D 也没什么需要惊慌的....
给你另外一个自己解决的思路...
如果情况不复杂,且需求相对固定,可以 在 model 重写 as_json 方法。 如果情况比较复杂,可以加一层 presenter 层。 something like:
app/presenters/post_presenter.rb
class PostPresenter
attr_reader :user, :post
def initialize(user, post)
@user = user
@post = post
end
def as_json(options = { })
post_hash = {
title: @post.title,
...
...
}
post_hash
end
end
Controller 里调用的时候可以这样
@posts = Post.all.map{ |p| PostPresenter.new(current_user, p) }
当然情况越是复杂,presenter 这种模式就越好用... 如果不复杂显得有点过了 :)