2012-07-24 35 views
1

我只是想確保我在正確的軌道上,但創建一個使用相同的名稱,如HABTM遷移時:在HATBM關係中,具有相同起始名稱的遷移的字母順序是什麼?

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 

這看起來很奇怪,但是這是如何遷移/表應該看起來?

+1

也許你應該使用'的has_many:through'協會只是腦損傷努力來命名此表的緣故。 – MurifoX 2012-07-24 20:16:31

回答

2

根據rails guide

優先模式名之間使用<操作絃樂計算。這意味着如果字符串長度不同,並且字符串在比較長度最短時相等,則較長的字符串被認爲比較短的字符串具有更高的詞彙優先級。例如,由於名稱「paper_boxes」的長度,期望表「paper_boxes」和「papers」生成「papers_paper_boxes」的連接表名稱,但是實際上產生了「paper_boxes_papers」的連接表名稱(因爲下劃線'_'在通用編碼中按字典順序小於's')。

所以,我覺得應該是dog_categories_dogs

+0

非常感謝 – LearningRoR 2012-07-24 20:55:13

相關問題