Rails 4多个ActiveRecord关联

布赖恩·史密斯

我有一个具有多个外键的表ProductOrder,这些外键链接到SecurityUser表。我试图找出一种配置模型的方法,以便在从查询返回ProductOrder时可以加载多个SecurityUser外键。

这是我的product_order.rb的一部分:

class ProductOrder < ActiveRecord::Base
    self.table_name = 'product_order'

    belongs_to :security_user, :class_name => 'SecurityUser', :foreign_key => :ordered_by_client_user
    belongs_to :security_user, :class_name => 'SecurityUser', :foreign_key => :staff_engager1
    belongs_to :security_user, :class_name => 'SecurityUser', :foreign_key => :staff_engager2
    belongs_to :security_user, :class_name => 'SecurityUser', :foreign_key => :last_updated_by_user

这是security_user.rb的相应部分:

class SecurityUser < ActiveRecord::Base
    self.table_name = 'security_user'

    has_many :product_orders, :class_name => 'ProductOrder'      

这些模型是使用设计用于从数据库模式创建模型的gem生成的。

因此,我想做的是从ActiveRecord查询中加载ProductOrder,然后从该结果中我可以访问一些SecurityUser对象(例如ordered_by_client_user或staff_engager1)中的信息。

我正在将应用程序从Java重写为RoR,因此我以前使用了Hibernate和JPA查询,并且习惯于使用查询加载所有对象。我每次都尝试了以下相同的结果:

ProductOrder.includes(:security_user)
ProductOrder.joins(:security_user)
ProductOrder.eager_load(:security_user)
ProductOrder.preload(:security_user)

但是问题在于RoR不知道要加载哪个外键。我想避免仅在模型上使用“ get”方法来访问这些外键,但是如果那是需要的,那就这样吧。我当前的解决方法是构建动态的,混乱的.joins()语句。

任何建议或见解将不胜感激。

帕万

问题是您security_userProductOrder模型中使用了相同的名称associations。因此,它可能无法正常工作。

您应该将这些名称(1.e,security_user更改为一些有意义的名称,以使其正常工作。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Rails 4 ActiveRecord的关联计数顺序

来自分类Dev

Rails 4 ActiveRecord多个查询

来自分类Dev

Rails Activerecord:如何排除具有多个关联记录的记录

来自分类Dev

Rails ActiveRecord关联

来自分类Dev

Rails 4:使用表单对象时验证关联的ActiveRecord模型

来自分类Dev

Rails 4:ActiveRecord删除调用上的删除关联列

来自分类Dev

Rails:新关联的 activerecord 更新

来自分类Dev

Rails activerecord count 关联数

来自分类Dev

关于自引用has_many关联的空关联的Rails 4 ActiveRecord查询

来自分类Dev

Rails:如何将多个ActiveRecord关联合并到单个集合

来自分类Dev

Rails:如何将多个ActiveRecord关联组合到一个集合中

来自分类Dev

关联条件Rails 4

来自分类Dev

关联条件Rails 4

来自分类Dev

构建关联 Rails 4

来自分类常见问题

禁用ActiveRecord for Rails 4

来自分类Dev

rails 4 ActiveRecord :: StatementInvalid

来自分类Dev

Rails 4 ActiveRecord :: AssociationTypeMismatch

来自分类Dev

Rails 4 ActiveRecord组

来自分类Dev

rails 4 ActiveRecord :: StatementInvalid

来自分类Dev

Rails 4-将ActiveRecord关联和输出作为JSON加载

来自分类Dev

Activerecord Rails 4执行类似于联接的操作,但仍会返回没有关联的行

来自分类Dev

Rails JSON的多个嵌套关联

来自分类Dev

Rails Active Record多个关联

来自分类Dev

Rails:ActiveRecord关联返回零关系

来自分类Dev

Rails:基于关联值的ActiveRecord查询

来自分类Dev

Rails的ActiveRecord的belongs_to关联未加载

来自分类Dev

Ruby on Rails:Activerecord集合关联的模型

来自分类Dev

Rails ActiveRecord与多个表联接

来自分类Dev

如何在Rails中使用ActiveRecord查询关联的关联?