Rails中的远程数据模型



我有模型验证,一些方法,过滤器等。不幸的是,数据来自API,所以我需要重载从DB拉记录的方法。这是哪种方法?

到目前为止,我已经创建。在活动记录的模型中创建方法保存新记录。我只需要添加方法create到模型它通过API创建记录。现在我想用它来选择数据。

下面的代码是我已经拥有的(创建记录)的示例:

def create
  EmployeesApi.create(self.attributes.reject{|k,v| %w(id created_at updated_at).include? k })
end

我需要它越低越好,因为它有一些关系和应用程序特定的验证。移动关系和周围的逻辑意味着整合两个现有的系统,在这种情况下是不行的。

另外一种解释:

我想绕过数据库获取模型的数据,但对于关联,让一切保持原样。模型的数据存储在另一个应用程序/数据库/系统中。

我将通过API加载模型自己的数据,ActiveRecord将从本地DB配对/加载它的关联

如果EmployeeApi将在ActiveResource之后建模,您可以使用ActiveModel增强它。关联可能只以一种方式工作(从ActiveRecord到ActiveResource)。考虑API down等异常也很好。

我认为你想要实现的是在创建此记录之前从DB中提取一些数据?或者验证一些数据库字段,可能确保一个唯一的约束或其他…请查看活动记录钩子/回调

http://api.rubyonrails.org/classes/ActiveRecord/Callbacks.html

你可以这样做:

class Subscription < ActiveRecord::Base
    before_create :record_signup
    private
    def record_signup
      self.signed_up_on = Date.today
    end
end

最新更新