如何创建这种 `through`` 关联?

How to create this `through`` association?

OrganizationLink 通过 Node 关联。

Organization:

has_many :nodes
has_many :links, through: :nodes, source: :where_first_links

Node:

belongs_to :organization
has_many :where_first_links, class_name:  "Link",
                             foreign_key: "first_node_id"
has_many :where_second_links, class_name:  "Link",
                              foreign_key: "second_node_id"

Link:

belongs_to :first_node,  class_name: "Node"
belongs_to :second_node, class_name: "Node"

问题::如何将Link关联回Organization?我尝试了下面的行,但这似乎不起作用 (ArgumentError: Unknown key: :through.):

belongs_to :organization, 
           through: :first_node, 
           source: :where_first_links, 
           inverse_of: :links

使用 has_one 代替 belongs_to

class Link < ActiveRecord::Base
  belongs_to :first_node,  class_name: "Node"
  belongs_to :second_node, class_name: "Node"

  has_one :organization, through: :first_node
end

belongs_to 不支持通过键关联

你应该使用 has_one 关联

has_one :first_node_organization, 
        through: :first_node, 
        class_name: 'Organization', 
        source: :organization