我在Rails/ActiveRecord中找出一个产品/类别关系时遇到了麻烦。我相信目前所有的设置都是正确的,但是在尝试创建一个新的关系时,我仍然会遇到以下错误:
uninitialized constant Categorization::ProductId我的设置如下..。
# app/models/product.rb
class Product < ActiveRecord::Base
has_many :categorizations
has_many :categories, :through => :categorizations
end
# app/models/category.rb
class Category < ActiveRecord::Base
has_many :categorizations
has_many :products, :through => :categorizations
end
# app/models/categorization.rb
class Categorization < ActiveRecord::Base
belongs_to :category_id
belongs_to :product_id
end如果有帮助,连接表(分类)的迁移文件是:
# db/migrate/20150924153543_create_categorizations.rb
class Categorizations < ActiveRecord::Migration
def change
create_table :categorizations do |t|
t.integer :product_id
t.integer :category_id
t.timestamps null: false
end
end
end每当我尝试以下操作时,我都会得到错误:
Categorization.new(category_id: 1, product_id: 1)身份证是1和1都存在..。
我最关心的是关系问题,但是.我目前必须通过一个单独的URL将一个产品关联到一个类别来管理这些信息。是否有一种简单的方法可以在“添加产品”页面中添加多个选择,以便在创建/编辑产品时能够关联多个?如果不是的话,我不太担心这件事,因为我主要关心的是让它正常工作。
谢谢!
发布于 2015-09-24 17:03:46
# app/models/categorization.rb
class Categorization < ActiveRecord::Base
belongs_to :category
belongs_to :product
end您被foreign_keys和ActiveRecord关联混淆了。
--
product_id和category_id是foreign_keys

它们基本上可以帮助ActiveRecord在关联数据表中找到正确的记录。
--
belongs_to :category是ActiveRecord协会

ActiveRecord自动获取category引用并生成category查询。
https://stackoverflow.com/questions/32766938
复制相似问题