Próbuję zrozumieć zachowanie instrukcji include
, gdy jest używane w wielu Mixinsach. Oznacza to, że mam te oświadczenia:Opis działania instrukcji `include` dla" kolejnych "modułów mixin
class Article < ActiveRecord::Base
include DoubleIncludedModule
include AModule
# ...
end
module AModule
include DoubleIncludedModule
# ...
end
module DoubleIncludedModule
# ...
end
Ile razy będzie DoubleIncludedModule
zawarte w klasie Article
? To znaczy, ponieważ "późniejsze" włączenie DoubleIncludedModule
(najpierw w klasie Article
, a następnie w AModule
włączonej przez samą klasę Article
) będzie problemem "podwójnego włączenia" automatycznie obsługiwanego przez Ruby lub spowoduje, że DoubleIncludedModule
(błędnie) zostanie włączony dwa razy?
Oczywiście, chciałbym dołączyć moduł DoubleIncludedModule
tylko jeden raz. Jak mogę to zrobić (może za pomocą niektórych metod Ruby on Rails) we właściwy sposób?
Tylko dlatego, że używasz Railsów, nie oznacza to, że pytanie ma coś wspólnego z Railsami. Railsy nie zmieniają sposobu działania 'include'. To jest pytanie wyłącznie rubinowe. –
@Andrew Marshall - Możliwe, że istnieją pewne metody Ruby on Rails, które mogą pomóc w rozwiązaniu niektórych problemów - jak w pytaniu. – Backo