Кроме того, администратор портала может добавить исключение для пользователя или для группы пользователей. Исключением может быть полная или частичная замена значений по умолчанию. В случае частичной замены значения по умолчанию применяются, когда пользовательские значения отсутствуют. Иерархия для определения окончательной конфигурации для пользователя: 1. исключения пользователя 2. исключения группы 3. значения по умолчанию
class User < ApplicationRecord
belongs_to :group, required: false
has_many :spreads , through: :group
end
class Group < ApplicationRecord
has_many :users
has_many :spreads
end
class Spread < ApplicationRecord
belongs_to :group, required: false
end
2.6.5 :008 > User.first.spreads << Spread.first
User Load (4.1ms) SELECT "users".* FROM "users" ORDER BY "users"."id" ASC LIMIT $1 [["LIMIT", 1]]
Spread Load (0.7ms) SELECT "spreads".* FROM "spreads" ORDER BY "spreads"."id" ASC LIMIT $1 [["LIMIT", 1]]
Traceback (most recent call last):
1: from (irb):8
ActiveRecord::HasManyThroughCantAssociateThroughHasOneOrManyReflection (Cannot modify association 'User#spreads' because the source reflection class 'Spread' is associated to 'Group' via :has_many.)
2.6.5 :009 >
Здесь я хочу напрямую добавить Spread Пользователю без использования групповой ассоциации! Кто может решить это?