identity_map_enabled 可以减缓一些查询
现在提醒列表是有 1 + n + n .. 查询的性能问题的,大家看怎么解决吧……
对象缓存?
dynamic_fields:
anwser = Anwser.new
anwser['q1'] = 'some value'
anwser.save
anwser['q1'] # => 'some value'
直接当 Hash 用
动态创建类
model = Class.new
class << model
def foo
end
end
#or
model.class_eval do
def foo
end
end
object = model.new
object.foo # => nil
不过不太理解你动态创建类的意图?
一开始用 mongodb 是为了尝鲜,后来用着也没什么问题,就继续用了。我写的都是小网站,组件不成熟影响不大,解决问题也是提高能力的机会。
分布式用不上
模式自由让开发过程的束缚更小,比如改个字段名(未上线前),就在代码改就好了,不用 rake db:migrate。上线之后该迁移还是要迁移。
然后内嵌文档和 array 这样的数据类型让数据结构更符合人脑的思维。比如 tags,存成文档的一个字段 (Array) 就行了,搜的时候
Topic.where(:tags => 'ruby')
就行了。比 SQL 用关联表实现轻便很多。
我觉得既然不是要做成邮件列表的话就不用每个回复都发邮件了,可以在 @ 的时候才发邮件。邮件列表的话是可以直接回复邮件参与讨论的,但是邮件提醒没有这个功能。
现在一个 server 占了多少内存呢?我一个类似网站,功能可能少点,passenger 一个 ruby 进程 40M。如果太高的话可能要检查下代码。
将来是要做成邮件列表吗?
其实邮件提醒不是个好主意,以前做过一次,一晚上就回滚了。因为上一个邮件提醒功能还要加个关闭选项,或者什么人能给什么人发邮件的权限,结果复杂度会大大提升。
最近在考虑要把个人域名指向哪里。wordpress 升级一下编辑器挂了,都不想维护了
其实现在发帖量还少,不用急着做关注和内容过滤。完善 wiki 系统更紧急一些。
人的关注可以放到 twitter 上,以后对 twitter 的整合会更好
OmniAuth 一直是独立的插件阿。
1.0 不再大包大揽,要自己找模块咯。 https://github.com/ballantyne/omniauth-douban
我倒,现在@是直接链接 twitter 帐号的?
运行 gem server,会在 8808 打开一个 web 服务
localhost:8808 可以看到自己装过的 gem 的文档。
不过我都是 google 的……
跟别的模块没有冲突,可以短些
3 是 2 的答案,rake db:schema:load 就是载入 db/schema.rb
我已经放弃这类工具了。折腾大半天发现某些地方定制成本超过自己写的成本后还是决定都自己写。