5

DB設計ビジネスを表す、スキーマ、エンティティ、プロパティの3つのクラスがあります。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 に答える