rails - 可以安装多个宝石做同样的事情吗?

时间:2011-09-28 05:05:41

标签: ruby-on-rails rubygems

我很好奇是否可以将多个执行相同功能的宝石安装到一个应用程序中。做或不做的协议是什么?

示例:

  1. 在一个模型中使用多个宝石 - 使用auth逻辑对用户进行身份验证并使用devise进行电子邮件确认
  2. 在不同模型中使用多个宝石 - 在博客模型中使用太阳黑子搜索并在产品模型中使用元搜索
  3. 由于

3 个答案:

答案 0 :(得分:0)

除非有常数重叠,否则你应该没问题,从技术上说。

例如,由Model.search等动态方法由两个不同的宝石提供可能会导致问题。如果gem允许您指定要挂钩的模型,则可能不会发生这种情况。

而且,正如其他人所指出的那样,宝石也可能存在冲突的依赖关系。

这是否可以接受,和/或多余,好......

答案 1 :(得分:0)

在我个人看来,没关系,只要宝石足够不同,以便获益是值得的。如果它们只执行相同的功能,那么仅使用其中一个是有益的。

我的示例是will_paginatekaminari。我长时间使用will_paginate(即使在Rails 3测试版中),然后通过webinar of Ryan Bates找到kaminari并将一个应用程序完全切换到kaminari。这有一个价格标签,只有你坚持这个决定才值得。要同时使用这两者,您作为开发人员必须了解它们,区别和不同的选项。我不认为这是值得的。

答案 2 :(得分:0)

很好。但是,有时候宝石会有相互冲突的依赖关系。您可能希望确保不会遇到该问题。查看Gemfile.lock的依赖项。就个人而言,除非有充分的理由,否则最好保持清洁。