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

adamshen · March 03, 2017 · Last by a0nqm replied at March 17, 2017 · 3781 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.