1
A
回答
0
rails插件has_many_polymorphs可以很好地适应这个目的。您可以定义“getters”来提取特定数据类型,这些类型是多态关系的一部分。
这是有点复杂,但文件可以负担得起改善。
1
class Address < ActiveRecord::Base
belongs_to :addressable, :polymorphic => true
end
class Person < ActiveRecord::Base
has_many :addresses, :as => :addressable
end
class Company < ActiveRecord::Base
has_many :addresses, :as => :addressable
end
>> c = Company.create(:name => "WidgetCo")
>> p = Person.create(:name => "John Smith")
>> a1 = Address.create(:street => "123 Foo ST", :city => "Barville", :state_code => "MT", :zip_code => "12345", :addressable => p)
>> a2 = Address.create(:street => "321 Contact RD", :city => "Bazburg", :state_code => "MT", :zip_code => "54321", :addressable => c)
>> Address.all(:conditions => { :addressable_type => Person.class_name })
=> [#<Address id: 1, street: "123 Foo ST" ... >]
相关问题
- 1. 你可以在Neo4j中使用关系类型的数字吗?
- 2. 我们可以使用匹配来检查类的类型吗
- 3. 我可以在VS的类图中看到关系吗?
- 4. 我可以从C中的变量中检索数据类型吗?
- 5. 关系类型与Rails关联有关吗?
- 6. SwiftyJSON - 可以检查对象类型吗?
- 7. 我们可以增加数据类型的大小吗?
- 8. Scala:我可以访问类型化方法的类型吗?
- 9. 我可以在预先声明的类中使用类型吗?
- 10. 我可以将类型分配给MATLAB中的类属性吗?
- 11. 我可以在C#通用约束中指定'超类型'关系吗?
- 12. 我可以检查iPhone的具体类型吗?
- 13. 当涉及多个模板类型时,是否可以缩小类和函数之间的朋友关系?
- 14. 如何在rails中定义关系以便模型可以具有不同类型的关联模型?
- 15. Linq-Sql Oracale对象关系数据类型,可以吗?
- 16. 可移动类型:类别关系
- 17. 是NSManagedObject的子类可以有这种相同的类类型的关系?
- 18. C++:我们可以收集类型吗?
- 19. 我可以扩展php类型吗?
- 20. 我可以依靠模板类型吗?
- 21. 我可以检测到:“基类的类重载方法”吗?
- 22. 我可以使用类模板返回类型的函数吗?
- 23. 我可以在Autofac中注册我的模块类型吗?
- 24. 我可以从泛型类继承而不指定类型吗?
- 25. Jasmine.Js中的toEqual可以检查多个类型吗?
- 26. 我可以在C#中使用“类”类型吗?
- 27. 在C++中,我可以将类类型表示为变量吗?
- 28. 由Rails中的相关类created_at排序
- 29. 我可以在GraphQL中使用没有连接类型的边缘类型吗?
- 30. 我可以在命令行上从类型库中提取类型的CLSID吗?
嗯,我应该澄清。这是一种双面多态关系。 我有: 用户>权限>角色 我想获取用户所属的所有角色,同时删除权限表中的任何其他记录。 User.roles() 我可以走: 的has_many:角色:为=>:资源:通过=>:许可???? – 2009-07-01 05:18:27