0

Rails の has_and_belongs_to_many メソッドのバグと思われるものを追跡しようとしています。落とし穴は、クラスに不規則な複数形を使用していることです。このクラスを StreetOfCars と呼びます。以下に記載されているように、不規則な複数形を正しく設定しています。クラス名は単なる例です。重要なことは、StreetOfCars の不規則性と、's' で終わることです。2 つの質問があります。

  1. ここで一体何が起こっているのですか?
  2. 超最終着陸はどこですか?

他の情報が必要な場合はお知らせください。

StreetOfCars.reflect_on_assocation(:cities).options[:join_table]
#=> 'cities_streets_of_cars'

City.reflect_on_assocation(:streets_of_cars).options[:join_table]
#=> 'cities_streets_of_car'

class StreetOfGold
  has_and_belongs_to_many :cities
end

class City
 has_and_belongs_to_many :streets_of_gold
end

#File config/initializers/inflections.rb
   ActiveSupport::Inflector.inflections do |inflect|
     inflect.irregular 'street_of_gold', 'streets_of_gold'
   end

# File activerecord/lib/active_record/associations/builder/has_and_belongs_to_many.rb, line 7
  class HasAndBelongsToMany < CollectionAssociation
    def build
      reflection = super
      check_validity(reflection)
      define_destroy_hook
      reflection
    end
  end

# File activerecord/lib/active_record/associations/builder/collection_association.rb, line 21
  class CollectionAssociation < Association
    def build
      wrap_block_extension
      reflection = super
      CALLBACKS.each { |callback_name| define_callback(callback_name) }
      reflection
    end
  end
# File active_record/associations/association.rb
  class Association
    # build is not defined in this class.
  end
4

0 に答える 0