gpt4 book ai didi

ruby-on-rails - ActiveSupport::关注和扩展mongoid模型

转载 作者:行者123 更新时间:2023-12-04 07:40:39 26 4
gpt4 key购买 nike

我正在使用带有 rails 3 的 mongoid 并且最近遇到了一个非常艰难的问题
问题,我需要一个建议。

我正在开发 CMS,其中一个想法是 CMS 将提供
一些基本模型定义和最终用户将在需要时扩展
具有自己的定义和控件的基本类,并将它们保存在不同的集合(表)中。

class DcPage
include Mongoid::Document

field a ....
belongs_to b ....
validates a ....
end

class MyPage < DcPage
field c ....
validates c ....
end

直到最后一个版本的 mongoid 这才有效(几乎没有破解)和数据
将被保存到 my_pages 集合。由于一些问题,mongoid no
不再支持此行为,并且数据始终保存到 dc_pages
收藏。

在解释我的问题时,mongoid 团队建议我使用
ActiveSupport::Concern 并为我提供了一个示例。哪个有效
如果在同一个源文件中定义了扩展类,则完全可以。哪一个
顺便提一句。在实践中永远不会发生。
module CommonBehaviour
extend ActiveSupport::Concern

included do
field :subject, type: String, default: ''
# ...
end
end

class DcPage
include Mongoid::Document
include CommonBehaviour
end

class MyPage
include Mongoid::Document
include CommonBehaviour
end

到目前为止,我发现如果我需要基本源文件,它可以工作
我的第二个文件。看起来像这样:
需要'/some/path/to/my/gem/app/models/dc_page.rb

你现在能看到我的痛苦吗?基本源文件当然会被备份到
gem ,因此成为一个移动的目标。

请帮助我更好的解决方案。

经过
受体

最佳答案

这不起作用的原因是因为这是单表继承的模式。
您需要关闭表继承才能使其正常工作。

但是,在这种情况下,mongoid 开发人员的建议是正确的路线。
看起来您只需要正确地要求您的模块/类。

关于ruby-on-rails - ActiveSupport::关注和扩展mongoid模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16266123/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com