【问题标题】:Create associations to the same model multiple times - Rails多次创建与同一模型的关联 - Rails
【发布时间】:2018-03-08 21:59:59
【问题描述】:

我有一个很奇怪的案子。我有几个模型通过关联联系在一起,其中一种关联允许用户模型直接使用作业模型访问引用的作业数据。然而,第二种情况允许用户模型通过位置模型访问工作数据。

User has_and_belongs_to_many :jobs
User has_many :jobs through: :locations

那么我需要如何区分这两行代码,让User.jobs使用第一个关联,User.jobs_through_locations使用第二个关联?

【问题讨论】:

  • this 是您要找的吗?
  • @wolfson 我试过了,但由于多对多关联,很可能无法让它工作。不过,我认为这样的事情会起作用。

标签: ruby-on-rails ruby


【解决方案1】:

为第二个关联使用自定义关联名称,并使用该名称引用第三个表中的作业。

注意:来源很重要,因为您需要告诉 rails 在获取 user_jobs 时要使用哪个模型。

用户

has_and_belongs_to_many :jobs

has_many :user_jobs,通过: :locations, :source => :jobs

【讨论】:

    【解决方案2】:

    如果 Locations 有很多工作,请给第二个关联一个不同的名称,并告诉它 Location 中的哪个关联是源。

    User has_many :jobs_through_locations, through: :locations, source: 
    :jobs
    

    【讨论】:

      猜你喜欢
      • 2011-01-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-11
      • 2011-05-06
      相关资源
      最近更新 更多