【问题标题】:Ruby on Rails with REST API带有 REST API 的 Ruby on Rails
【发布时间】:2010-12-13 07:01:14
【问题描述】:

我是 Ruby on Rails 的新手,虽然我喜欢它提供的组织和标准,但我对如何让 Rails 在这种特定情况下为我工作感到有些困惑。

我有一个 Web 服务,我想使用我的 rails 应用程序。直接连接到数据库会很好,并且可以立即为我提供使我的 Rails 应用程序工作所需的模型。

但是,我必须复制 web 服务提供的所有逻辑(这不是微不足道的)。如果我没有直接连接到数据库,我将如何持久化模型(例如用户模型)。

我是否必须创建一个单独的数据库来模仿服务器的数据库,但实际上从不直接与其交互?

提前致谢 - 如果您需要澄清,请告诉我。

编辑:示例

  1. 我有一个通过 URL www.mywebservice:8080.com/users/5 获取的 Rails 应用程序
  2. 服务返回 JSON {name:foo,nick:bar,friend:baz}
  3. 在这一点上,我如何告诉 Rails 用刚刚获得的内容创建一个 User 对象,然后将其存储在数据库中?或者有没有办法持久化这个 JSON 对象?

【问题讨论】:

    标签: ruby-on-rails rest ruby-on-rails-3


    【解决方案1】:

    ActiveResource 可以很好地处理您的用例 http://api.rubyonrails.org/classes/ActiveResource/Base.html

    它所做的是反映服务返回的 json 并伪造对象以使其看起来像一个真实的对象。

    class User < ActiveResource::Base
    end
    
    user = User.find(1) 
    puts user.name  
    # "scott"
    

    【讨论】:

      【解决方案2】:

      如果您不需要 Rails 的任何功能,为什么还要使用它?我建议从 Sinatra 开始,然后添加您需要的库,如 JSON、Rails 附带的 ActiveRecord(?)。

      您可以连接到任何您想要的数据库,而不必使用 ActiveRecord,但是,很难理解您真正要问的是什么。这个标题与问题有什么关系?为什么直接数据库?您不想实例化一个用户对象然后对其执行user.to_json 吗?

      亲! :)

      【讨论】:

      • 1.我的标题与这个问题有关,因为我在问如何在不实际连接到 API 数据库的情况下模仿 REST API 的数据库(或者即使我根本需要模仿它)。 2. 实例化一个用户对象意味着我必须有一个用户模型——对吗?这是否意味着我需要有一个相应的用户表?
      猜你喜欢
      • 2011-07-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-11-04
      • 1970-01-01
      • 2015-01-24
      相关资源
      最近更新 更多