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

adamshen · March 03, 2017 · Last by a0nqm replied at March 17, 2017 · 3682 hits

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

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 包之间的依赖

Reply to elepht

握爪,深有同感。。。

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

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

Reply to elepht

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

Reply to pinewong

讲出你的故事😳

Reply to torvaldsdb

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

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

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

Reply to torvaldsdb

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

Reply to 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 就悲剧了

Reply to ecnelises

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

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

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

Reply to hging

自动补全…

Reply to ericguo

……

Reply to u1452261116

挖矿…

Reply to hooopo

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

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

Reply to sec

+1 每次需要手动改库

是 ruby 的

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

不迭代我也是非常迷茫

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

Reply to dudu_zzzz

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

Ruby 1.8 Hash not order

Turbolinks 的事件处理

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

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

Reply to a0nqm

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

Reply to dayudodo

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

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

You need to Sign in before reply, if you don't have an account, please Sign up first.