我正在开发一个简单的应用程序,用于创建和管理生日,婚礼等活动。所有不同的活动都有不同的属性,可能会有很大差异。我是rails的初学者,但我已经完成了Rails for Zombies课程,所以我知道如何创建模型/控制器。但是,当我想要所有事件的公共标识符(如密钥)时,我现在卡住了。应该可以使用代码/标识符搜索事件,但我不知道如何执行此操作。
我在考虑拥有一个包含标识符的事件模型,例如'JamesBDay'。然后每个不同的事件模型(生日/婚礼等)将保持它的各自的事件模型。我是否正确思考,如何使用Rails'generate'和'db:migrate'命令?
完成此操作后,如何使用Event属性中的标识符搜索任何类型的事件?
下面的解释图片
谢谢!
答案 0 :(得分:1)
这听起来像是Single Table Inheritance的完美问题。基本上你会有一个has_many事件的用户。创建一个事件表并添加一个名为“type”的字段。从那里你创建其他模型,子类“事件”而不是“ActiveRecord :: Base”。这些都将存储在同一个表中,但将是可以拥有自己的方法的唯一对象。这允许您将事件解析为整个列表“Event.all”,然后找出那里的类型,或者您可以使用“Wedding.all”解析各个事件类型。