首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Rails 4 ActiveRecord has_many通过关系

问Rails 4 ActiveRecord has_many通过关系
EN

Stack Overflow用户
提问于 2015-09-24 16:54:47
回答 1查看 143关注 0票数 1

我在Rails/ActiveRecord中找出一个产品/类别关系时遇到了麻烦。我相信目前所有的设置都是正确的,但是在尝试创建一个新的关系时,我仍然会遇到以下错误:

代码语言:javascript
复制
uninitialized constant Categorization::ProductId

我的设置如下..。

代码语言:javascript
复制
# 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

如果有帮助,连接表(分类)的迁移文件是:

代码语言:javascript
复制
# 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

每当我尝试以下操作时,我都会得到错误:

代码语言:javascript
复制
Categorization.new(category_id: 1, product_id: 1)

身份证是1和1都存在..。

我最关心的是关系问题,但是.我目前必须通过一个单独的URL将一个产品关联到一个类别来管理这些信息。是否有一种简单的方法可以在“添加产品”页面中添加多个选择,以便在创建/编辑产品时能够关联多个?如果不是的话,我不太担心这件事,因为我主要关心的是让它正常工作。

谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-09-24 17:03:46

代码语言:javascript
复制
# 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查询。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32766938

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档