新手问题 Rails 能不能定义好枚举字段的哈希值比如 true 代表 男 false 代表女

111ccc · 2020年09月27日 · 最后由 hugo.huang 回复于 2020年09月30日 · 1932 次阅读

rails 能不能 定义好 枚举字段 的哈希值 比如 true 代表 男 false 代表女 , 然后模板 渲染可以 自动 显示男女,我记得 django 是可以的

只能自己做 i18n 吧,毕竟要显示的语言可能不知一种。

huacnlee 回复

感谢 答主 太谢谢了 !!!!!!

sdfsd 回复

这个比较侵入原本的逻辑的,会改你获取到的字段值。。最好考虑下或者用的时候定好规则。

hugo.huang 回复
irb> @book.status
"draft"

这个是 Rails 原本的设计,并且是一个最佳的实现。

你可以去看看 https://api.rubyonrails.org/classes/ActiveRecord/Enum.html#method-i-enum

实际上用 Enum 的方式,我们在代码层始终会用字符串的方式来使用 enum,而走 ActiveRecord 存储的时候,ActiveRecord 会把它自动转换为 int 类型。

huacnlee 回复

以前用的时候没看到这里,项目里没规范好 在代码层 始终用字符串的方式来使用 enum,导致每个人写的不一样就挺乱的。 如果规范好使用的方式的话 enum 的确是很好用的,感谢分享。

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