【发布时间】:2014-10-01 06:43:21
【问题描述】:
我正在尝试将 belongs_to 关系更改为 has_and_belongs_to_many 关系。以下是我尝试过的迁移:
迁移1
class RemoveSyndicateMemRef < ActiveRecord::Migration
def change
remove_reference :syndicate_members, :syndicate
create_table :members_syndicates, id: false do |t|
t.belongs_to :syndicate
t.belongs_to :syndicate_member
end
end
end
迁移 2:
class MultipleSyndicatesPerUser < ActiveRecord::Migration
def change
drop_table :members_syndicates
create_table :members_syndicates, id: false do |t|
t.references :syndicate, null: false
t.references :syndicate_member, null: false
end
end
end
当我尝试使用任何 HABTM 方法时,我不断得到一个
ActiveRecord::StatementInvalid: Could not find table 'syndicate_members_syndicates'
错误。
我对 Rails 比较陌生,所以我不确定这里出了什么问题。任何为我指明正确方向的帮助将不胜感激。
更新:
在我修复运行 > syn.syndicate_members.build() 的 db 表的名称后返回:
ActiveModel::MissingAttributeError: can't write unknown attribute `syndicate_id'
【问题讨论】:
标签: ruby-on-rails ruby activerecord migration