我正在为我的应用服务器使用mongoid / Rails。我定义了自己的字段“公式”。这是一个我不希望在数据库中具有持久性的字段,因为它不是数据字段,而是在模型的所有记录中一致的公式。因此,我将此公式存储在我的元数据中,每当我动态创建需要此公式的模型时,我使用自定义类型“公式”创建一个字段,其中公式为默认值。到目前为止这是有效的 - 但是一旦我保存包含我的公式字段的记录,它就不会。
所以在我创建或更新任何记录之前,我想循环遍历模型的所有字段,并根据字段的类型我允许更新 - 或者不是(因此对于每个formla字段,我不允许更新)
我可以循环遍历所有字段名称(model.fields.keys.each)并检查字段的名称 - 但我还没有找到循环所有字段并访问该类型的方法。有什么想法吗?
但也许有另一种方法可以避免我的公式字段保存在数据库中?我为我的新字段类型'formula'创建了一个mongoize(object)方法,这个方法只返回nil - 但是这仍然会将空字段写入数据库。