我是一名PHP开发人员,并与Laravel广泛合作。但是,我目前需要对Redmine(Ruby问题跟踪工具)进行小规模的扩展工作。
我是Ruby和Rails的新手,所以我同时试图加快语言和框架的速度。
通常,我需要进行一些迁移,为Redmines现有表添加几列。然后,当在Redmine中触发各种方法(记录时间条目,删除条目,创建项目等)时,我需要进行一些API调用,并在所述列中插入/更新返回的数据。
所以不是非常复杂,但是当我开始工作时,我想知道一些事情:
1)因为我正在扩展现有的Rails应用程序,我应该创建一个插件吗?还是宝石?似乎Redmine有一个“插件生成器”,提供一些锅炉板
2)我需要在Redmine中挂钩现有的Save和Update事件。据我所知,您并不打算覆盖现有的控制器和模型。在那里,有哪些方法用于实现现有应用程序的附加功能?
我找到了这个有用的文章:http://www.redmine.org/projects/redmine/wiki/Plugin_Internals
然而,它提到:
As explained above: you rarely want to override a model/controller. Instead you should either:
1) add new methods to a model/controller or
2) wrap an existing method.
据推测,您不会直接将方法添加到原始来源?我注意到他使用模块来实现这一点,但不确定它们是如何工作的。