我正在用Rails 7和MongoDB 8构建一个新项目,我想对多个字段(状态等)使用枚举器。
我想使用宝石mongoid-enum,但它不与蒙戈8工作。
切换到SQL数据库是一个解决方案吗?或者有其他方法吗?我检查了Mongo的文档,发现了一个Phantom自定义字段类型,但它看起来没有保存在数据库中。在rails控制台中,我将执行Model.status =“open”,然后保存它,它没有返回任何错误。所以我关闭控制台,然后再次打开它。运行Model.status,它返回nil。
谢谢你的阅读和试图帮助我!
1条答案
按热度按时间nxowjjhe1#
首先,MongoDB和PostgreSQL都有好有坏,这取决于你需要的功能类型,请参见:https://www.geeksforgeeks.org/difference-between-postgresql-and-mongodb/
关于Phantom自定义字段类型,这确实与
ActiveRecord::Enum
做了相同的事情,但需要编写更多的代码。您能分享一下您为测试运行的不工作的代码吗?编辑日期:2022年2月7日
下面是一个例子,你可以在mongo中使用enum而不需要写太多代码:
免责声明:我没有在一个真实的的应用程序中测试它,让我知道如果它不工作。