【发布时间】:2011-03-18 15:40:21
【问题描述】:
我试图弄清楚如何为设备/服务关系建模。 我正在使用 Rails 3 和 MongoDB/Mongoid。 Rails 应用程序用于监控 IP 网络。
- 网络上的设备(工作站、服务器等)使用设备模型表示。
- 服务是一种服务,例如 HTTP、SMTP、SSH,每个服务“类型”(HTTP、SMTP、SSH)都可以与许多设备相关联。
- 每个服务“类型”可能有一些选项可以在关联时设置 一个特定的设备(如果 HTTP 服务不是,我想 HTTP 可以有一个端口选项 例如在端口 80 上运行)。
在用户手动添加设备时的视图中,我需要某种方式让他们选择 他们希望应用监控的服务。
此外,如果用户尝试运行自动设备发现,我想通过应用支持的服务并查询设备以查看设备是否支持该服务。
最后,一个作业以一定的时间间隔运行,以从数据库中的每个设备中提取新数据。 在那个轮询工作中,我需要某种方式来查询与设备关联的每个服务,然后保存特定于设备/服务关系的数据(服务启动/关闭等)。这就是我卡住的地方。我不知道该怎么做。 我需要第三个模型吗?如何在我的模型中指定这些数据? 或者也许我做错了,有更好的代表方式 我想做什么?
这是我的模型代码现在的样子:
device.rb
class Device
include Mongoid::Document
field :name
field :ip_address
references_many :services
def polll
# psuedocode
for each service
query service
end
# save data back to DB
update_attributes(...)
end
end
service.rb
class Service
include Mongoid::Document
field :name
field :description
references_many :devices
end
【问题讨论】:
标签: ruby-on-rails mongodb mongoid