redis 要启动 sentinel 啦,这样是合理的,或者你也可以用 redis 的 cluster 模式,再加上 nginx 配上 tcp load balance
#7 楼 @flypiggys 好啦,理解啦 use_transactional_fixtures 删除掉这个,应该是去掉默认的那个 fixtures 的数据库 transaction 清除策略,我没有用过默认的 fixtures,不清楚它是怎样的,之前项目就是这么做的,我只是把以前的东西给记录下来,另外,能不能提“无脑”两个字,有点怪,只是建议
关于去掉 use_transactional_fixtures
我是看到了这行注释的内容,我是一直去掉的,因为我没有用默认的 fixtures,而用了 factory_girl 来代替它,那我肯定要去掉默认 fixtures 的东西呀
# Remove this line if you're not using ActiveRecord or ActiveRecord fixtures
# config.fixture_path = "#{::Rails.root}/spec/fixtures"
# If you're not using ActiveRecord, or you'd prefer not to run each of your
# examples within a transaction, remove the following line or assign false
# instead of true.
# config.use_transactional_fixtures = true
去掉config.use_transactional_fixtures = true
之后,才用 database_cleaner 来代替它呀。
至于没有去掉config.fixture_path = "#{::Rails.root}/spec/fixtures"
是因为这个在某些场合下还有些用
至于你说的
一定会有什么无法拒绝的原因比如 rspec 的 bug 之类的才会让大家转而使用这个 gem.
这个我就不清楚了,惭愧,我是发现 database_cleaner 可以适用好多 ORM,支持好多 Strategies,可能它在某种程度上比默认的更好吧,好多人都用它,似乎成了标配,我就用了,正如 factory_girl 一样,它被造出来,肯定是有用的呀,或许就是默认的在某些方面不太方便,或者它就更好,我知道的就这么多了
#5 楼 @flypiggys 你要这么说,那我就没办法了,因为你在揣摩别人的想法,我都说过,你发给我的链接不就是证明用 hook(before,after),去手动清除吗,我没说过一定要装 database_cleaner 吧。我不想用那个默认的可以吧,就是喜欢用 database_cleaner。它能适配好多 orm。
If you prefer to manage the data yourself, or using another tool like database_cleaner to do it for you,
#3 楼 @flypiggys 不安装也可以啊,你要自己手动清除数据库喽
很赞,如果有支持 markdown 会更好,只是建议
之前我的网站 http://www.rails365.net 也是使用 postgresql 本身的全文检索,也安装了中文支持的插件。
这里我也写过一篇文章来介绍它的使用 http://www.rails365.net/articles/postgresql-quan-wen-jian-suo-xi-tong-pg-search-shi-xian-xian-si
不过我以 PostgreSQL 的全文检索的使用者来看,它的速度并不快,创建一篇文章,要建立好多索引,这个时候后台就在慢慢创建,要等待一些时间,它查询起来,也是时快时慢的,慢的时候要等上几秒,所以还不如使用 elasticsearch 来搜索,我的网站最后换上了它,不仅功能强大了许多,而且速度更快,毕竟它是号称接近实时的。
所以建议不使用它。当然得看你的应用场景和数据量。
#31 楼 @xlaok 我明白你的意思了,这个是可以做到的,你先可以看这篇文章 http://www.rails365.net/articles/websocket-zhi-yong-tubesock-zai-rails-shi-xian-liao-tian-shi-wu
tubesock 这个 gem 可以很好的做到你说的需求,不过,actioncable 只是另一种实现,离不开本质问题
websocket 本质这是 tcp 协议,你只要能够将这个 socket 请求取出来,就用 write 方法写一些数据就可以了。
我在本地试了一下,我截图
之所以我会知道这个,是因为我查看了 actioncable 的源码,使用的主要命令就是
connection.env['rack.hijack_io']
返回的是 socket 文件描述符。
针对这个描述符进行 writer 操作就可以了,数据自然会返回给客户端。而不广播,是单一的。
#26 楼 @xlaok 这个是可以实现的,我不懂 socket.io,如果我没理解错的话,这几条命令就是给规定的客户端广播消息
ActionCable.server.broadcast \
"web_notifications_#{current_user.id}", { title: 'New things!', body: 'All the news that is fit to print' }
其实也可以想一下 ruby-china 就知道了,你登录之后,在消息那里情况每个人肯定是不一样的,这个时候就是通过 current_user.id 来区别,也可以这样说,channel 就是可以接参数的,channel 就相当于一个个的房间,隔开消息的。
mina 太小众,只适合 rails 等 ruby 应用,cap 强大的多,适用场景多,用的人也多,插件库更新得频繁,相比,mina 的插件库就没有那么频繁的更新。所以最终还是选择 cap 靠谱点。
看下 https://github.com/charlotte-ruby/impressionist 这个 gem 吧
已用上
#9 楼 @xiaohesong 原来是在另外的分支,多谢告知
#7 楼 @xiaohesong 以前可以的,不过那个 actioncable gem 被移除掉了,是空的 https://github.com/rails/actioncable rails 4 用 tubesock 也是一样的
:plus1:
:plus1:
写着是 10-15,进去有时候最多拿个 10K,有时候能有七八 K 就不错了,程序员的工资被严重高估,特别是各种培训机构,工资不高点,谁去面试啊
@stonegong 投了简历没反应?
投了简历了
请问楼主,搜 a 为什么就能搜到 acb 呢,你应该不知道分词的原理吧,比如"hello world",搜"hello"或"world",就能搜到,而不是搜"h",这不是 sql 的 where 语句。
#11 楼 @liwen_zhang 这个不能,它默认没提供,不过我觉得这个自己弄,有一个"ruby-pinyin"的 gem 就有这种功能,你可以研究一下