在HATBM关系中具有相同起始名称的迁移的字母顺序是什么?

时间:2012-07-24 20:08:40

标签: ruby-on-rails ruby-on-rails-3 ruby-on-rails-3.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

这对我来说很奇怪,但这是迁移/表格的外观吗?

1 个答案:

答案 0 :(得分:2)

根据rails guide

  

模型名称之间的优先级使用&lt; String的运算符。这意味着如果字符串具有不同的长度,并且在比较最短长度时字符串相等,则较长字符串被认为具有比较短字符串更高的词汇优先级。例如,由于名称“paper_boxes”的长度,人们会期望表“paper_boxes”和“papers”生成连接表名称“papers_paper_boxes”,但实际上它生成了连接表名称“paper_boxes_papers”(因为下划线'_'在字典上比常见编码中的's'小。)

所以,我认为它应该是dog_categories_dogs