【问题标题】:Can I use Rails without a database at all and only calling web services?我可以在没有数据库的情况下使用 Rails 并且只调用 Web 服务吗?
【发布时间】:2009-06-22 05:05:31
【问题描述】:

我打算写一些新的 UI 代码,很多人建议使用 RoR。但从我目前所读到的关于 RoR 的内容来看,拥有一个数据库来存储后端数据似乎几乎是强制性的。就我而言,我无法访问数据库,并且我的所有数据对象都可以通过 Web 服务(一些 REST 和 SOAP 服务)获得。

我认为在这种情况下我必须使用控制器直接与服务对话,但是在没有模型层 (ActiveRecord) 的情况下使用 RoR 是否仍然是一个好主意。

还有其他框架更适合这种方法吗(我可以使用 Java 或 Ruby 中的任何东西,我们没有任何 PHP 或 Python 代码)。

【问题讨论】:

    标签: ruby-on-rails web-services


    【解决方案1】:

    Rails 可以很好地解决这个问题;它明确支持在没有 ActiveRecord 的情况下运行。查看默认environment.rb文件中的注释:

    # Skip frameworks you're not going to use. To use Rails without a database
    # you must remove the Active Record framework.
    # config.frameworks -= [ :active_record, :active_resource, :action_mailer ]
    

    如果您不加载 ActiveRecord,您的 database.yml 文件将被忽略;您的所有模型都可以从 ActiveResource::Base 继承,并且可以正常工作。

    【讨论】:

    • 所以我也可以这样设置验证?
    • 他们不会在服务电话的另一端吗?如果不是,你不能直接覆盖 save 方法吗?
    【解决方案2】:

    如果您只需要网络服务,那么我推荐sinatra。 Sinatra 使在 Web 服务上运行的应用程序变得轻而易举。如果您想在客户端上使用片段 URL 的类似方法,请查看 sammy。它们都非常适合构建具有非传统数据源的 Web 应用程序。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-06-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-09-29
      • 1970-01-01
      相关资源
      最近更新 更多