Согласно документации Rails, можно использовать has_many: through в качестве ярлыка:
has_many: сквозная связь также полезна для настройки
"ярлыки" через вложенные ассоциации has_many. Например, если
В документе много разделов, а в разделе много абзацев, вы можете
иногда хочется получить простую коллекцию всех абзацев в
документ.
Допустим, у нас есть этот код:
class User < ApplicationRecord
has_many :sub_users
has_many :settings
end
class SubUser < ApplicationRecord
belongs_to :user
has_many :settings, through: :user
end
class Setting < ApplicationRecord
belongs_to :user
end
Исходя из этого, если я запускаю user.settings.new
, я получаю новый экземпляр Setting
с user_id
, установленным на user.id
.
Отлично. Но если я запускаю sub_user.settings.new
, я получаю новый экземпляр Setting
, для которого user_id
не установлен sub_user.user.id
.
Это ожидаемое поведение?