我需要一个用于item_ones和item_twos的HABTM连接表,但是我似乎无法获得符合Rails期望的迁移结果。如果我这样做:
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)。如果我这样做:
create_join_table :item_ones, :twos do |t|
...
end然后创建正确的表,但是第二个外键被命名为two_id而不是item_two_id。
那么,除了手动指定:table_name之外,还有什么方法可以做到这一点吗
发布于 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
https://stackoverflow.com/questions/19945123
复制相似问题