1

正しい軌道に乗っていることを確認したいだけですが、同じ名前を使用している HABTM の移行を作成するときは、次のようになります。

class Dog < ActiveRecord::Base
  has_and_belongs_to_many :dog_categories
end

class DogCategory < ActiveRecord::Base
  has_and_belongs_to_many :dogs
end

私はこれを考えています.......

rails g migration dogs_dog_categories dog_id:integer dog_category_id:integer

これは私には奇妙に見えますが、これは移行/テーブルがどのように見えるべきですか?

4

1 に答える 1

2

レールガイドによると:

モデル名間の優先順位は、文字列の < 演算子を使用して計算されます。これは、文字列の長さが異なり、最短の長さまで比較したときに文字列が等しい場合、長い文字列は短い文字列よりも語彙の優先順位が高いと見なされることを意味します。たとえば、テーブル「paper_boxes」と「papers」では、「paper_boxes」という名前の長さから「papers_paper_boxes」という結合テーブル名が生成されると予想されますが、実際には「paper_boxes_papers」という結合テーブル名が生成されます (一般的なエンコーディングでは、アンダースコア「_」は「s」よりも辞書的に小さいためです)。

だから、そうあるべきだと思うdog_categories_dogs

于 2012-07-24T20:24:14.573 に答える