Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/58.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 支持使用巫术或Authlogic gems的多个模型? 我有用户和联系人 用户登录到他们的帐户,并可以创建通讯簿,从中添加联系人 如果他们与联系人共享某个内容,该联系人需要登录才能查看_Ruby On Rails_Ruby On Rails 3_Authlogic_Sorcery - Fatal编程技术网

Ruby on rails 支持使用巫术或Authlogic gems的多个模型? 我有用户和联系人 用户登录到他们的帐户,并可以创建通讯簿,从中添加联系人 如果他们与联系人共享某个内容,该联系人需要登录才能查看

Ruby on rails 支持使用巫术或Authlogic gems的多个模型? 我有用户和联系人 用户登录到他们的帐户,并可以创建通讯簿,从中添加联系人 如果他们与联系人共享某个内容,该联系人需要登录才能查看,ruby-on-rails,ruby-on-rails-3,authlogic,sorcery,Ruby On Rails,Ruby On Rails 3,Authlogic,Sorcery,用户在数据库中是唯一的(存储在用户表中),联系人存储在联系人表中,并且仅在给定的通讯簿中是唯一的 我目前正在为用户使用巫术宝石,效果很好。但是,如何扩展此功能以支持联系人登录的身份验证 我读过一些关于通过STI或多态设置来实现这一点的文章,但不清楚这类东西的一般模式是什么 我可以让两个模型都使用魔法吗?或者这是一种反模式 提前谢谢 为什么要为联系人使用单独的模型?为什么不建立一个自联接,如: has_many :contact_entries, :class_name => "Contac

用户在数据库中是唯一的(存储在用户表中),联系人存储在联系人表中,并且仅在给定的通讯簿中是唯一的

我目前正在为用户使用巫术宝石,效果很好。但是,如何扩展此功能以支持联系人登录的身份验证

我读过一些关于通过STI或多态设置来实现这一点的文章,但不清楚这类东西的一般模式是什么

我可以让两个模型都使用魔法吗?或者这是一种反模式


提前谢谢

为什么要为联系人使用单独的模型?为什么不建立一个自联接,如:

has_many :contact_entries, :class_name => "ContactEntry"
has_many :contacts, :through => :contact_entries
您的用户表看起来是一样的,但您将有一个连接模型,如:

class ContactEntry < ActiveRecord::Base
  belongs_to :user
  belongs_to :contact, :foreign_key => "contact_id", :class_name => "User"
end
class ContactEntry“contact\u id”,:class\u name=>“User”
结束
其中将包含用户id和联系人id字段

更新

好的,我现在明白你的问题了。我认为这在巫术中是不可能的,至少在没有对巫术本身进行实质性修改的情况下是不可能的。Sorcery在initializer.rb文件中定义了一个可验证的模型


然而,Authlogic可以通过“acts_as_authentic”引入任何模型,因此它是满足您需求的合理解决方案。缺点是authlogic似乎没有得到积极的开发。然而,它在10天前就有了一个应用程序,所以它绝对值得一看。

Hi-问题是该应用程序在sep表中有联系人和用户。这是一个新特性。此外,用户表需要唯一的电子邮件地址,而联系人不需要(联系人仅对通讯簿是唯一的)。