2012-06-23 1 views
2
나는 가이드를 따라하고

결과 내가레일 has_many 협회가 <a href="http://guides.rubyonrails.org/association_basics.html" rel="nofollow">http://guides.rubyonrails.org/association_basics.html</a> 에 "그런 열"오류

class Customer < ActiveRecord::Base 
    has_many :orders, :dependent => :destroy 
end 



class Order < ActiveRecord::Base 
    belongs_to :customer 
end 

을 만들었지 만

알 수없는 속성에 @order = @customer.orders.create() 결과를 실행 한 :

를 CUSTOMER_ID

왜이 오류가 발생하는지 알고 계십니까? 그리고 더 중요하게 has_many에 대한 모든 가이드가이 예제를 보여 주면서 정신을 차릴 수있는 숨겨진 이유가 있습니까?

답변

4

주문 테이블에 customer_id 열을 추가해야합니다. 마이그레이션 실행해야 그 내용은

-

이 g 마이그레이션 add_customer_id_to_orders가 CUSTOMER_ID 레일 : 정수를

레이크 dB : 나는 갈퀴 DB를 실행 한

+0

감사합니다. 아마 내 질문에 대답 할거야. 아직도 왜 당신의 모델과 당신의 DB 사이에 그런 격차가 있는지 이해하려고 노력하고 모델에 필요한 메타 정보를 추가하는 것만으로는 어플리케이션을 작동시키기에 충분하지 않습니다. – thebravoman

+0

죄송합니다. 질문하지 않으십니까? 너는 말하려고한다. –

0

마이그레이션을 실행하는 것을 잊어 버린 것 같습니다. 콘솔과 레일 프로젝트의 루트 디렉토리에서 rake db:migrate을 실행하여 연관 및 모델에 대한 모든지지 테이블 및 컬럼을 레일이 생성했는지 확인하십시오.

+0

마이그레이션 : 이전에 여는 마이그레이션 콘솔. rake db : migrate를 실행 한 후 customers (id, create_at, updated_at)와 orders (id, create_at, updated_at)라는 두 개의 테이블이 있습니다. – thebravoman

1

열을 주문 테이블에 추가해야합니다.

ActiveRecord는 관련 주문을 가져올 고객을 알지 못합니다.

시도해보십시오. rails g migration AddCustomerIdToOrders customer_id:integer (db : migrate 잊지 마세요).