丢失了使用 rails_admin 分配的最后一个对象

Lost the last object assigned using rails_admin

我正在使用 Rails_admin 对我的模型进行 CRUD 功能。我有两个模型 CategoryProject。一个 project 可以有一个 category,但一个 category 可以在多个 project 中。问题是当我创建两个具有相同 category 的不同 project 时,前一个失去了关系,只有最后一个创建的保持它。我怎样才能用相同的 category 创建不同的 project

我的模型是:

类别

class Category < ActiveRecord::Base
  belongs_to :project, :inverse_of => :category

end

项目

class Project < ActiveRecord::Base
  has_one :category, :dependent => :destroy, :inverse_of => :project

  def category_id
    self.category.try :id
  end
  def category_id=(id)
    self.category = Category.find_by_id(id)
  end

end

您真正寻求的关系是:

  • 项目belongs_to类别
  • 类别has_many 项目

您在模型文件中为 Category 声明的 belongs_to 关系表示每个 Category 对象只能绑定到一个 Project 对象。

查看 http://guides.rubyonrails.org/association_basics.html#choosing-between-belongs-to-and-has-one 以了解有关您将使用的两个关系的更多信息。