瞎扯淡 在使用 Ruby 或者 Rails 的过程中,你遇到过哪些令你印象深刻的坑?

adamshen · 2017年03月03日 · 最后由 a0nqm 回复于 2017年03月17日 · 3682 次阅读

如题,请教各位,有没有哪些坑令你至今依然难以忘记

Where in 返回的数据排序问题

round 方法。

 1.255.round(2)
 => 1.25

 2.255.round(2)
 => 2.26

3.255.round(2)
=> 3.26

0.255.round(2)
=> 0.26

再试了下 0.55,从 0.55 到 9.55,round(2) 后小数部分依然是 0.55...

看反了 Orz

rake db:migrate  本地迁移出错,条件反射执行rake db:rollback
然后报错就rake db:reset。大量的时间浪费在本地迁移上面,反复重导测试数据。

有些 gem 包 bundle 永远不成功,改了版本号或者 ruby 版本就好了,但是有时候又会引入新的问题

gem 包之间的依赖

elepht 回复

握爪,深有同感。。。

ActionController::Parameters is not a Hash in Rails 5.0+

rake db:setup 跟 rake db:reset 一样,都会清除数据😪

elepht 回复

gem 版本升级升级后,原来的部分功能会丢失 也是很尴尬! gem 'carrierwave'项目中被我升级了,后来导致文件名是中文的文件无法获取。

pinewong 回复

讲出你的故事😳

torvaldsdb 回复

这个主要是下意识的认为 setup == create + migrate + seed

项目在开发中数据表大变动,第一次是备份后用的 setup,数据没了,心里纳闷,然后从备份还原。后来再一次大变动,一急了又用了一次 setup,然后果不其然的又清光数据了,重要的是,这次只有上次的备份。。就是说中途的数据都丢了,还好的是这是测试数据,这次之后,我就重新对待 setup 了

用 message-bus。。是叫这个把?我忘记设置密码,被挖矿了(当时年纪小,教程贴没写要设置密码我就真的没设置密码)

torvaldsdb 回复

我给大家讲一个。 某个刚导完数据准备上线的生产环境下,发现有一个 Migration 写错了,于是打算 Rollback 某个特定的版本,结果手贱写了db:rollback STEP=2016xxxxxxxx……

msg7086 回复

rake db:migrate:down VERSION=2016xxxxxxxxx

https://github.com/rails/jbuilder/issues/346, 从 rails5 开始只要在 gem 里面扩展 ActionController,就会导致 jbuilder 失效。不知道现在解决了没有。

Ruby 里面会把 0 当成 true 来看...

0.1 + 0.2

定义了一个环境变量 VERSION 标记应用的版本,然后跑rails db:migrate,数据库升级到跑路。。。。

redis-object 的 lock 与 activereocrd 的 lock 命名冲突,使用 with_lock 就悲剧了

ecnelises 回复

+1 从 Python 转过来一开始被坑过

我就不信没人少写 end...

老应用 ruby1.8.7 没有办法安装 rmagic,只能用老的服务器做镜像,安装虚拟机

hging 回复

自动补全…

ericguo 回复

……

u1452261116 回复

挖矿…

hooopo 回复

行数多了...就忘记过...而且测试没问题...上线就 gg

以前 emacs 有个插件,只要少个 end 满屏幕血红色。不知道别的编辑器有没有。😂

sec 回复

+1 每次需要手动改库

是 ruby 的

1..10.step(1) {|x| puts x}

不迭代我也是非常迷茫

我记得 rails2.3 sql 查询效率非常差,因为留了坑,每条 sql 前都会查询表信息。

dudu_zzzz 回复

因为直接调用 10 的方法了 哈哈

Ruby 1.8 Hash not order

Turbolinks 的事件处理

不能好好的写$(document).on('ready', function() {}),要写成page: change,后来又改成page: load,最近升级到 Rails5,还要改写成turbolinks: load

然而前端是我的弱项,从一个坑跳到另一个坑里,天知道我经历了什么……

a0nqm 回复

我现在干脆不用 turbolinks,直接 api, 前端调用完事儿

dayudodo 回复

这样需要配别的什么东西一起用吧,否则谁来处理前端资源优化、压缩的任务呢?

我实在不想折腾前端,能省则省。

需要 登录 后方可回复, 如果你还没有账号请 注册新账号