我生成了几个模型,它创建了以下迁移文件。在第二次迁移中,您将看到两个引用类型。sub_configuration_id是对item_configurations_model的引用。这是一个可选的引用(可以是NULL)。
当我查看ItemConfigurationOption模型时,我注意到了下面的belongs_to :sub_configuration_id。这是无效的,因为belongs_to :sub_configuration_id不是模型。我应该如何引用sub_configuration_id可能的关系?
class ItemConfigurationOption < ActiveRecord::Base
belongs_to :item_configuration
belongs_to :sub_configuration_id
end
class CreateItemConfigurations < ActiveRecord::Migration
def change
create_table :item_configurations do |t|
t.references :item, index: true
t.string :name
t.string :description
t.integer :type
t.timestamps
end
end
end
class CreateItemConfigurationOptions < ActiveRecord::Migration
def change
create_table :item_configuration_options do |t|
t.references :item_configuration, index: true
t.references :sub_configuration_id, index: true
t.string :name
t.string :value
t.decimal :price
t.timestamps
end
end
end发布于 2014-09-03 18:21:03
将第三行改为:
belongs_to :sub_configuration, :class_name => :ItemConfiguration, :foreign_key => :sub_configuration_id使用上面的语法,您可以声明一个与ItemConfiguration的关系。然后,您可以使用sub_configuration方法生成子配置对象。
https://stackoverflow.com/questions/25650895
复制相似问题