我正在开发一个Rails应用程序,它将通过Rails的ActiveResource功能作为其他Rails应用程序的身份验证系统.
身份验证应用程序具有一个名为的ActiveRecord模型User
.客户端应用程序有一个名为的ActiveResource模型User
.我知道在客户端应用程序中我可以做类似的事情user.save
,它将使用XML over HTTP执行PUT操作.
但是,如果我想要放入我的客户端应用程序的User
模型has_many :contacts
或类似的东西(contacts
在客户端应用程序中作为ActiveRecord模型)怎么办?然后我想做一些事情,比如获得所有Contact
属于某些人的东西User
.
那可能吗?
(我注意到有人提出了类似的问题,但答案并不多.)
简答:不.参与类has_many
,belongs_to
,has_and_belongs_to_many
住的ActiveRecord和建立SQL查询,使协会工作.
也就是说,你可以让它看起来像一个关联,你只需要编写自己的方法.哪个是您所关联的问题的最高投票答案.
因此,在您的Contact模型中添加一个列,user_id
或者您需要传递给User.find
ActiveResource模型的任何键,您可以像这样部分关联合同:
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
你可以has_many
免费获得更多,但这是它的要点.