私はテーブル「ユーザー」を持っていますが、1人のユーザーは別のユーザーのマネージャーかもしれません。また、1人のユーザーは他の多くのユーザーのマネージャーでもあり、1対多の関係であり、 。foreign_keyを追加する方法は同じテーブルを指している?
1.私は 'manager_id'(本当に別のuners idを格納する)カラムをusersテーブルに追加しました。
2.I've Userモデルクラスで定義された関係:私はそのすべての罰金別のユーザーIDに1人のユーザーMANAGER_ID」を設定している場合
今belongs_to :manager, foreign_key: 'manager_id',class_name:'User'
has_many :minions, class_name:'User'
は、レールコンソールで言います。しかし、もし私が 'user.manager'や 'user.minions'のようなメソッドを使用しようとすると、それらのメソッドは定義されていません。私は間違っていたのですか?これはちょうど私が上記の説明から理解何のスケッチは、それを向上させることができている
class User < ActiveRecord::Base
self.inheritance_column = :child_class
has_many :minions, :foreign_key => :parent_id, :as => :parent
belongs_to :parent, :polymorphic => true
end
:
正確なエラーメッセージは何ですか? – Pavan
NoMethodError:#<ユーザー:0x00000004c00ec8>のための未定義のメソッド 'minions ' – EasternDude
クラスのインスタンスで行うべきであり、クラス自体ではありません。 'User.find(1).minions'または' User.find(1).manager'を試してください – Pavan