我需要修改第三方gem的代码,在哪里以及如何做?

时间:2010-06-13 07:47:28

标签: ruby-on-rails gem

我正在建立一个基于RoR的网站,并使用第三方宝石“设计”。我使用rake gems:unpack将“devise”解压缩到我的“vendor / gems”目录。现在,我发现“devise”提供的方法“SessionsController.create”不符合我的要求,我想修改它。

但我不知道最好的方式是什么:

  1. 只是直接修改方法SessionsController.create?
  2. 创建另一个SessionsController并覆盖“create”方法?

1 个答案:

答案 0 :(得分:0)

Ruby有开放类,你应该总是倾向于重新开放和重新定义你需要的方法,所以重新打开SessionsController并覆盖create方法将是最佳选择。

直接编辑gem会给您以及将来必须触摸代码的所有其他人带来维护负担。最终有人会忘记并更新那个宝石。