我有一个名为Comics的模型。我的总体目标是允许每个漫画都有可选的变体(has_many漫画)和单个variant_of(belongs_to漫画)。当我添加variant_of时,我希望逆变量字段也类似于相同的关系。
我首先创建了一个variant_of迁移:
class AddVariantOfToComics < ActiveRecord::Migration
def self.up
add_column :comics, :variant_of, :integer
end
def self.down
remove_column :comics, :variant_of, :integer
end
end
它的工作非常出色。然后我尝试制作变体索引,这是我遇到问题的方面:
class AddVariantsToComics < ActiveRecord::Migration
def change
add_index :comics, ['variant_of'], :name => 'variants'
end
end
漫画模型:
class Comic < ActiveRecord::Base
has_many :variants, :class_name => "Comic", :foreign_key => 'variants',
belongs_to :variant_of, :class_name => "Comic", :foreign_key => 'variant_of'
...
end
有谁能告诉我如何联系这些领域?索引是正确的方法吗?还是我的命名妨碍了?
答案 0 :(得分:0)
has_many
关联的外键应该是variant_of
。喜欢:
has_many :variants, :class_name => "Comic", :foreign_key => 'variant_of'
它之后不应该有逗号。在您的示例中,它是::foreign_key => 'variants',
,这不是有效的语法。