ActiveResource模型可以与ActiveRecord模型集成吗?

Eth*_*han 4 rest activerecord ruby-on-rails activeresource

我正在开发一个Rails应用程序,它将通过Rails的ActiveResource功能作为其他Rails应用程序的身份验证系统.

身份验证应用程序具有一个名为的ActiveRecord模型User.客户端应用程序有一个名为的ActiveResource模型User.我知道在客户端应用程序中我可以做类似的事情user.save,它将使用XML over HTTP执行PUT操作.

但是,如果我想要放入我的客户端应用程序的User模型has_many :contacts或类似的东西(contacts在客户端应用程序中作为ActiveRecord模型)怎么办?然后我想做一些事情,比如获得所有Contact属于某些人的东西User.

那可能吗?

(我注意到有人提出了类似的问题,但答案并不多.)

Ott*_*tto 5

简答:不.参与类has_many,belongs_to,has_and_belongs_to_many住的ActiveRecord和建立SQL查询,使协会工作.

也就是说,你可以让它看起来像一个关联,你只需要编写自己的方法.哪个是您所关联的问题的最高投票答案.

因此,在您的Contact模型中添加一个列,user_id或者您需要传递给User.findActiveResource模型的任何键,您可以像这样部分关联合同:

class User < ActiveResource::Base
  # boilerplate ActiveResource url stuff

  def contacts
    Contact.find(:all, :conditions => { :user_id => self.id })
  end
end

class Contact < ActiveRecord::Model
  def user
    User.find_by_user_id(self.user_id)
  end
end
Run Code Online (Sandbox Code Playgroud)

你可以has_many免费获得更多,但这是它的要点.