Ruby on Rails模块,代码共享和社区

时间:2009-07-22 06:22:01

标签: ruby-on-rails module code-sharing

序言:我知道宝石。

我在工作中使用Drupal。如果您不知道,Drupal 模块。有一个框架和一个核心框架,但是当您在Drupal中构建一个站点时,安装和配置模块是大部分工作。

那么,作为Rails的新手,我有一个宠物项目,我正在尝试构建一个登录/用户系统。我看过the question about it here on Stack Overflow

程序

  1. 安装宝石
  2. 编写代码
  3. 如果您一年制作20个网站,18个网站具有相同的登录系统,您可以做些什么来最大限度地减少第2步?

    是否有我不了解的社区支持或活动?这种配置是否超出惯例?

3 个答案:

答案 0 :(得分:6)

Rails有“plugins”,这可以让你很好地模块化。实际上,当您在应用程序中使用gem时,通常会有一个存根插件来加载gem中的代码。看看the book

然后,让整个事情更进一步使用Rails Engines,这可以让你插入整个应用程序块,而不需要额外的额外开销。

请注意,用于身份验证的标准解决方案实际上是插件。

答案 1 :(得分:2)

在Drupal(4,5和6)和Rails中完成开发后,我将分享一些观察结果:

  1. Drupal!= Rails 虽然两者都是技术框架,但Rails比Drupal更不自然。使用Drupal,您可以获得开箱即用的页面和UI。使用Rails,更多的事情取决于你。

  2. Rails有多种方法可以协助引导/代码重用,包括 gems rails plugins 和现在 application templates

  3. 还有一些插件会比其他插件更能让你“抬起头” - 例如ActiveScaffold,为您提供功能齐全的管理区域。

  4. 不那么自以为是最终会给你更大的灵活性和力量。您可以使用完全不同的身份验证插件 - 比如AuthLogic vs RESTful Auth - 并选择最适合您的插件。

    我仍然使用和推荐Drupal来快速开发Drupal +开箱即用模块(最小化主题)接近要求的站点。对于自定义应用程序,Rails的强大功能+ Ruby的快乐意味着它的插件架构恰到好处:轻巧而强大。

答案 2 :(得分:0)

正如吉姆所说,插件就是你所追求的。至于能够快速找到有用的插件,请查看我的Rails plugin directory