5

我有 3 个类,Schema、Entity 和 Property,代表 DB 设计业务。Schema-Entity 似乎有效,但 Entity-Property 无效。

class Hx::Entity < ActiveRecord::Base
  belongs_to :schema
  attr_accessible :name
  has_many :properties    ,  class_name: "Hx::Property"  , primary_key: "id"
end

class Hx::Property < ActiveRecord::Base
  attr_accessible :destination, :indexed, :inverse, :isToMany, :kind, :name, :optional, :transient  , :type


  belongs_to :entity
end

当我运行 entity_obj.properties 时,它会抛出错误undefined method primary_key' for String:Class

我扭曲了 has_many 的选项,但它没有帮助。

有人对此有任何想法吗?

谢谢。

4

2 回答 2

6

谢谢羊肉!

我解决了这个问题。

一开始,我想问题就在附近has_many,因为它就出现在了那里。但事实并非如此。即使我没有定义class_name,Rails 仍然可以找到该类。

后来我发现一些记录显示该属性typeProperty分配值。根本原因是我覆盖了超类的属性!

解决方案:

ActiveRecord::Migration.rename_column :hx_properties , :type, :datatype
于 2013-03-20T07:41:08.403 回答
3

我认为你需要放弃“”HX::Property

错误消息告诉您它正在尝试调用 String:Class 对象的主键

于 2013-03-20T07:23:43.850 回答