2013-10-23 2 views
2

사용자 증서를주고 싶습니다. 액티브 :: UnknownAttributeError : 알 수없는 속성 : 레일 콘솔Postgres와의 활성 레코드 관계 및 작동하지 않음

class User < ActiveRecord::Base 
    # Include default devise modules. Others available are: 
    # :confirmable, :lockable, :timeoutable and :omniauthable 
    devise :database_authenticatable, :registerable, 
    :recoverable, :rememberable, :trackable, :validatable 
    has_many :deeds 
end 

class Deed < ActiveRecord::Base 
    belongs_to :user 
end 

나는이 오류 사람이 뭐가 잘못 됐는지 설명해 주시겠습니까

을 USER_ID. 도와 주셔서 감사합니다.

+1

오류가 발생하면? 마이그레이션을 실행 했습니까 ('rake db : migrate')? – HungryCoder

+0

예 그랬 으면 ... – houstongolden

+0

행동 표에 user_id 열이 있습니까? –

답변

2

Deed 모델에 user_id이라는 열이 필요합니다. Rails는 연관성을 만들 때 (예 : @deed.user = User.first을 통해) 증서가 속한 사용자의 ID로 해당 열을 자동으로 채 웁니다.

각각의 행동에 대해 user_id이 정의되면과 같은 항목을 호출하면 Rails가 "이 사용자의 사용자 ID와 동일한 사용자 ID를 가진 행위를하십시오"라는 SQL 쿼리를 수행 할 수 있습니다. 마찬가지로 @deed.user을 호출하면 Rails는 "이 증서의 user_id와 동일한 ID를 사용자에게 제공하십시오"라는 SQL 쿼리를 발행 할 수 있습니다.

+0

좋습니다. 방금 시도했지만 괜찮 았어 NoMethodError : # 에 대한 'add_column'메서드가 정의되지 않았습니다. – houstongolden

+0

데이터베이스에 열을 추가해야합니다. 즉,'Deed' 테이블에 컬럼을 추가하기 위해 마이그레이션을 실행해야합니다. 레일스에서 ​​몇 가지 조치를 취하고 마이그레이션에 대해 읽어야합니다. 궁극적으로 그렇게 빨리 진행할 것입니다. – tyler

+0

나는 rake db : migrate를 실행했다. 나는 여기에서 무엇이 빠졌는지 모른다. 어떤 아이디어? – houstongolden

관련 문제