В вопросе, на который я ранее ответил , я использовал расширение ассоциации для переопределения метода добавления (<<
) коллекции HABTM (также, аналогичный вопрос ):
has_and_belongs_to_many(:countries) do
def <<(country)
if [*country].all? {|c| c.is_a?(String) }
countries = Country.where(:code => country)
concat(*countries)
else
concat(country)
end
end
end
Это, вероятно, не поощряется, но мой вопрос заключается в том, как можно, если вообще возможно, переопределить оператор присваивания, чтобы я мог сделать countries = ['IL', 'US']
с теми же результатами?