bundle open
bundle edit
Exception RuntimeError in Rack application object (Missing `secret_key_base` for 'production' environment, set this value in `config/secrets.yml`)
看错误信息
这部分还未做完,需要有个好的方式可以调节那些显示,那些不显示
letter_avatar 是个 Gem,应该是 ImageMagick 的问题 所以用 Docker 装嘛,我都配置好了的
顺序现在还不能调整 你可以实现一下
需要手工设置屏蔽
名字可以改 编号固定的
除非有 Bug
wiki 的插件包含了 migration 的,不需要执行那个命令
同名账号是历史遗留问题了,新的方式是不可以这样的
action_store :like, :post, counter_cache: true
调用 action_store
定义 Action 的时候,动态创建的
你在机器上固定数字的办法有天会成为坑,玩意数字搞错了呢?
请参考 mongoid_auto_increment_id 的实现,这个就是用于解决 MongoDB ObjectId 过长的问题,在效率,分布式等各方面都是没有问题的。
http://ruby-doc.org/stdlib-2.1.3/libdoc/securerandom/rdoc/SecureRandom.html#method-c-uuid
标准库里面的 SecureRandom.uuid
不能用么?
如果要搞整形的话,那就得自己维护一个 Sequence 了,参见: mongoid_auto_increment_id
大致是有个 Sequence 表
Field | Value |
---|---|
table_name | count |
你需要在每次创建的时候,用 Atom 的方式修改 Sequence 对应记录,并拿出新的 count
# increment count and return new count
new_id = Sequence.increment(table_name)
这样做会有什么问题?同一种 table_name
在并发插入新数据的时候,会因为都修改了 Sequence
的同一行记录而导致锁表,于是插入会有并发限制。
如何解决,增加一个缓冲器,例如放入内存里面,每次调用 increment
不是 +1,而是加一批,例如 200,并将可用的 200 个数字放内存里面,下次用的时候,如果有可用的,先用内存里面可用的数字,直到用完再弄一批。
系统的不能删除,有许多地方会用到的
已处理,并清理了垃圾回帖
我没搞过容器里面开发啊,环境变量能统一一次切换?
但我认为分环境是为了让某些非配置化的实现能让环境区分来处理,例如:
if Rails.env.development?
do_some_thing_just_only_need_in_development
end
以及统一配置化,所有的配置都写好了,在多人开发的时候谁来下来,配置都是相同的,要切换环境,仅需要一个点(RAILS_ENV=xxx) 就能搞定。
标题先加上在容器里面,避免先入为主的误解
自定义页面可以自行通过编写 Plugin 的方式实现,详见
https://github.com/ruby-china/homeland-jobs 的例子
然后说用户可以申请发布文章的,目前头条的功能可以做,当然是否满足需求,还需要逐步完善。
不要用 Ruby 2.4 有可能 EventMachine 还没支持 2.4
已修复
靠,貌似 Kaminari 的 Bug,我重现出来了
@topics.cache_key
计算好像不对
ActiveRecord many to many 场景 cache_key 计算出来 timestamp 是内容的
Rails 的 cache_key
-> collection_cache_key
, ref: https://github.com/rails/rails/blob/92703a9ea5d8b96f30e0b706b801c9185ef14f0e/activerecord/lib/active_record/collection_cache_key.rb#L3
@topics.cache_key -> topics/query-fd1fdb6d9a3658838c61f1b985d75c8e-104-20170227041933359644
topics/query-fd1fdb6d9a3658838c61f1b985d75c8e-104-20170227041933359644
-> topics/query-<digest-of-sql>-<rows>-<max updated_at of Topic>
而我们的场景是正好遇到这个 Bug(或许不算?),topics 是通过 many-to-many 的方式拿出来的 current_user.favorite_topics
-> 来自于 Action
Model,所以 collection_cache_key
计算的最后个 timestamp 一直都不变,是因为收藏改变的时候,Topic 的没有变的。
我调整了一下,你再试试看
截图,我试了一下,没有重现
你必须用 homeland-docker 这个项目来安装,不能直接用 Docker Image,因为 homeland-docker 这个项目里面包含必要的配置文件。
人懒了,现在技术资料好找了
其实还有一个原因是现在写文章的,线上讨论的热度在减少,受移动应用的影响。
就像当年的博客火热,到后面技术人员很少再有人写博客一样。
怎么会有安装 Gem 的步骤啊,Docker 打包好了的,不会有那个步骤的,你这看起来像是用源代码部署了
数据库独立跑啊,需要持久化的不要放 Docker Contianer 里面