我对ruby和rails很新。我来自C ++背景,所以ruby和rails有点烦恼。
我设计了一个作为队列运行的rails应用程序。 Web API允许将项目推入队列并从队列中弹出。目前,它作为一个特定的应用程序,具有属于Jobs的Jobs模型和JobQueueItems模型。但是,队列的机制根本不是Job特有的。它只依赖于队列中项目的外键。我如何抽象这种行为,以便下次我想要一个AnimalQueue或一个CustomerQueue,我可以在我的应用程序中创建一个?
我知道我可以创建一个生成器,它将使用名称和方法创建模型代码,例如" Job"硬编码,然后调用
rails g MyCoolQueue Job
但这似乎很复杂。有要设置的路径,名称和视图以及强参数方法。还有另外一种方法吗?可以使用继承或接口来使其工作吗?类似的东西:
class QueueItem < ActiveRecord::Base
end
class JobQueueItem < QueueItem
belongs_to :Job
end
class QueueItemsController < ApplicationController
# all my queue controls, reference the foreign key and associated model in a generic way...
end
class JobQueueItemsController < QueueItemsController
# suddenly I have the controls to queue jobs?
end
# And also some views that generically reference the necessary fields and models in a QueueItem?
# Suddenly I have views for JobQueueItems?
如何制作一个易于插入rails应用程序的抽象数据类型,工具或其他抽象关系?可以想象任何可以抽象行为和关系的场景,只需要填写模型和字段的名称。我确信经验丰富的rails开发人员不会每次都从头开始重新编写所有内容复制和粘贴。正如我之前所说,我是ruby和rails的新手,所以我想学习标准的RoR方法来做这样的事情。代码生成是唯一的方法吗?
谢谢!