首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为迁移的HABTM创建Rails-4预期的表名和列名的正确方法?

为迁移的HABTM创建Rails-4预期的表名和列名的正确方法?
EN

Stack Overflow用户
提问于 2013-11-13 12:10:30
回答 1查看 413关注 0票数 1

我需要一个用于item_onesitem_twos的HABTM连接表,但是我似乎无法获得符合Rails期望的迁移结果。如果我这样做:

代码语言:javascript
复制
create_join_table :item_ones, :item_twos do |t|
   ...
end

( rails g migration CreateJoinTableOneTwo item_one item_two生成的是...which...)

它创建一个名为item_ones_item_twos的表,但Rails将查找item_ones_twos (因为在4.0中,它是factors out common prefixes)。如果我这样做:

代码语言:javascript
复制
create_join_table :item_ones, :twos do |t|
  ...
end

然后创建正确的表,但是第二个外键被命名为two_id而不是item_two_id

那么,除了手动指定:table_name之外,还有什么方法可以做到这一点吗

EN

回答 1

Stack Overflow用户

发布于 2013-11-13 12:20:27

通常,Rails期望连接表名称为<first model>s_<second model>s (例如,assemblies_parts)用于任何HABTM连接表。但是,因为ItemOne和ItemTwo具有相同的前缀(Item),所以Rails将所需的表名缩短为item_ones_twos

您将需要指定如下所示的table_name选项:http://edgeguides.rubyonrails.org/migrations.html#creating-a-join-table

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19945123

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档