Rails Rails 4.2.10 -> 5.0.0 的一个跟 enum 有关很隐蔽的差异

Catherine · 2020年02月07日 · 最后由 khiav223577 回复于 2020年02月16日 · 1097 次阅读

项目从 4.2.10->5.0.0。

在 4.2.10 中 (其他版本未测试)

class User < ActiveRecord::Base
  enum state: { good: 0, bad: 1}
end

在 4.2.10 中

User.first[:state]

会得到对应的整数的值。 但在 5.0.0 中,会变成对应的 string 的值

Rails5 改了,要用

User.first.state_before_type_cast
wenjiachengy 回复

请问有变数的作法吗? 还是只能够这样子:

User.first.send(:"#{column_name}_before_type_cast")
需要 登录 后方可回复, 如果你还没有账号请点击这里 注册