2012-10-21 2 views
1

나는 사용자의 모델이레일 협회 (belongs_to) 딜레마

class Card< ActiveRecord::Base 

     belongs_to :user, :foreign_key => "owner_id" 

    end 

또한 속성이 "OWNER_ID"라고 한 카드 모델, 내가 좋겠 이런 식으로 사용하고 싶습니다. Card.first.owner이 카드를 소유 한 사용자를 검색합니다.

내 문제는 제가 레일즈가 자동으로 ID를 연결한다는 것을 알고 있습니다. 협회하지만 그 일은 일어나지 않습니다. CardController에서

는 레일 라인

@card=current_user.cards.new(params[:card]) 

에 생성 작용에 갇혀 내가 db:migrate 짓을했는지 그것은 여전히 ​​작동하지 않습니다 unknown attribute: user_id

말한다 얻는다.

작동하려면 다음과 같이해야합니까?

@card = Card.new(params[:card]) 
@card.owner_id=current_user.id 

또는 뭔가 빠졌습니까?

+0

을 줄 것이다

class Card belongs_to :owner, :class_name => "User", :foreign_key => "user_id" end 

user.cards @ 당신을 줄 것이다 그러나 당신은에 오타가 외국어 – khustochka

+0

죄송합니다. 코드 자체에 올바르게 입력되어 있습니다. –

+0

내가 사용하려는 owner_id 열이 있습니다. –

답변

1

우선 owner_id 열이 필요하지 않습니다. 당신이 필요로

class User 
    has_many :cards 
end 

이이 card.owner 당신 @이는 경우가 확실하지

+0

카드를 만든 후 @ card.owner를하면 전무합니다. 마이그레이션이나 컨트롤러에서 특별한 작업을 수행해야합니까? –