在Ruby on Rails中建模资产/票证跟踪器

时间:2011-05-19 20:19:55

标签: ruby-on-rails ruby model

我对网络应用有一些想法。遗憾的是,我对网络开发知之甚少。因此,我决定通过在完成Ruby on Rails Tutorial by Michael Hartl之后以资产/票证跟踪器的形式构建“真实单词”示例来自学。我选择这种应用程序是因为它是我熟悉的东西,所以我已经知道它应该如何运作。当我向自己的应用程序添加功能时,这样的系统还需要我使用Rails的许多功能。

但是,我有一些关于建模的问题:

计算机,打印机,显示器,手机都是一种资产,因此它们都会共享一些字段(购买日期,购买价格,保修期,备注),但它们也会有一些特定类型的字段,基于资产类型。从严格的OOP角度来看,我想“分类”它。我应该如何在Rails中执行此操作?

我想随机生成资产和票号;我应该使用该号码作为项目的主键,还是那种不好的做法?我这样做的想法是创建简单,有用的CRUD URL。

太糟糕了,每个“问题”我只能奖励一张支票;我想我会选择最好的整体答案。任何见解都表示赞赏。

2 个答案:

答案 0 :(得分:2)

您基本上是在寻找Single Table Inheritance又名STI,请参阅此处的参考资料: http://api.rubyonrails.org/classes/ActiveRecord/Base.html

简而言之:

  

Active Record允许继承   将类的名称存储在   默认情况下名为“type”的列   (可以通过覆盖来改变   Base.inheritance_column)。这意味着   一个看起来像这样的继承:

     

类公司<的ActiveRecord :: Base的;   结束

     

class Firm<公司;   结束

     

class Client<公司;   端

在您的情况下,每个设备都将从Asset模型继承。

答案 1 :(得分:0)

这是一个开源应用程序,我与其他几个人分道扬..它是一个资产跟踪器,它使用多态来表示资产,但它并没有完全充实你想要做的事情,但通过源代码查看可能会对你有所帮助:

https://github.com/mechcow/Asset-Tracker