2014-09-24 7 views
2

다른 사용자의 부모 인 모델을 만들려고합니다.다른 사용자와 사용자 간의 관계

모델 : 여기 내가 지금 무엇을 가지고

class User < ActiveRecord::Base 
. 
. 
. 
    has_one :guardian_of_child 
end 


class GuardianOfChild < ActiveRecord::Base 

    belongs_to :user, foreign_key: "guardian_id" 
    has_many :users, foreign_key: "child_id" 

end 

마이그레이션 :

class CreateGuardianOfChildren < ActiveRecord::Migration 
    def change 
    create_table :guardian_of_children do |t| 
     t.references :user, index: true 

     t.timestamps 
    end 
    end 
end 

내가 'guardian_id'또는 'child_id'

<% @guardian_of_children.each do |guardian_of_child| %> 
    <tr> 
    <td><%= guardian_of_child.user.guardian_id %></td> 

에 액세스하려고 그것은 나를이 오류 준다 :

undefined method `guardian_id' for nil:NilClass 

내가 뭘 잘못하고 있니? 누군가 나를 도울 수 있을까요?

+0

모델링하려는 관계를 명확히 할 수 있습니까? 당신이 선언 한 협회로부터는 명확하지 않습니다. 예를 들어, has_many 관계는 a가 다른쪽에 속해야합니다. 또한 디버깅하는 것이 좋을 것입니다. 예를 들어 guardian_id를두고 사용자가 표시되는지 확인하십시오. – superuseroi

+0

구조체.sql 또는 schema.rb를 제공 할 수 있습니까? –

답변

0

나는 그것을 작동시켰다. 기본적으로 부모 - 자식 관계 모델입니다.

class User < ActiveRecord::Base 

    has_many :guardian_of_children, foreign_key: "guardian_id" 
    has_many :child_of_guardians, class_name: "GuardianOfChild", foreign_key: "child_id" 

    end 

    class GuardianOfChild < ActiveRecord::Base 

    belongs_to :guardian, class_name: 'User', foreign_key: 'guardian_id' 
    belongs_to :child, class_name: 'User', foreign_key: 'child_id' 

    end 
관련 문제