首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >自参照关联问题

自参照关联问题
EN

Stack Overflow用户
提问于 2010-09-14 16:45:48
回答 2查看 1.2K关注 0票数 0

我有下面的模型:

代码语言:javascript
复制
create_table :categories do |t|
  t.integer :category_id
  t.integer :language_id
  t.timestamps
end

create_table :category_localizated_categories, :force => true do |t|
  t.column :category_id, :integer
  t.column :localizated_category_id, :integer
end

class Category < ActiveRecord::Base
  has_many :category_localizated_categories
  has_many :localizated_categories, :through => :category_localizated_categories
end

class CategoryLocalizatedCategory < ActiveRecord::Base
   belongs_to :category
   belongs_to :localizated_category
end

我可以这样做:

代码语言:javascript
复制
category1 = Category.create :language_id => 1
category2 = category1.localizated_categories.create :language_id => 2

在数据库中创建了两个类别,但没有创建关联:

代码语言:javascript
复制
category.localizated_categories
[]

可能的问题是什么?谢谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-01-28 05:15:28

为什么你不去找一个更简单的自我参照的联想呢?

代码语言:javascript
复制
class Category < ActiveRecord::Base
  belongs_to :base_category, :class_name => "Category"
  has_many :localized_categories, :class_name => "Category", :inverse_of => :base_category

  scope :base, where(:base_category_id => nil)
  scope :localized, where("base_category_id NOT NULL")
  …
end
票数 3
EN

Stack Overflow用户

发布于 2010-09-14 16:49:47

代码语言:javascript
复制
class Category < ActiveRecord::Base
  has_many :category_localizated_categories
  has_many :localizated_categories, :through => :category_localizated_categories
  accepts_nested_attributes_for :category_localizated_categories
end

我认为这里需要嵌套模型:

http://ryandaigle.com/articles/2009/2/1/what-s-new-in-edge-rails-nested-attributes

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

https://stackoverflow.com/questions/3707307

复制
相关文章

相似问题

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