Тъй като казвате, генерираният SQL работи, когато директно го извикате, коренът на проблема се намира някъде в процеса на картографиране на върнатите данни обратно към обекти. Въпреки че настройката ви изглежда добре, изглежда доста нестандартна, така че бих опитал да дам повече на релсите подсказва как асоциациите си съвпадат.
Като начало трябва да зададете source за вашия through връзка (документи) :
has_many :inventories, through: :content_accesses, source: :inventory
Ако това все още не дава правилната представа за релсите, можете да опитате да зададете inverse_of , foreign_key , primary_key и дори class_name на другия belongs_to и has_many асоциации, за да дадете на релсите необходимите съвети. Трудно е да се каже какво би могло да помогне, но при нестандартни настройки понякога изпитвате определени проблеми с автоматично изведени имена.