2014-10-17 2 views
1

테이블 이름을 변경하는 모델을 만들었습니다. 이제는 조명기에서 찾을 수없는 것 같습니다. 어떤 모델을 사용해야하는지 조명기에 알려주고 싶습니다.Rails fixture는 어떻게 모델 클래스를 찾습니까?

레일 2.0.5를 사용하고 있습니다.

증상이 rake db:fixtures:load 일 때 id 필드가 null 일 수 없다는 오류가 발생합니다.

테이블 이름이 변경되는 다른 모델이 있기 때문에 이상합니다. 제대로 작동합니다.

두 테이블이 있습니다 : customerlong_prefix_orders. 그들은 모두 id 필드를 필요로합니다. 이처럼 보일

# app/models/customer.rb 
class Customer < ActiveRecord::Base 
    set_table_name :customer 
end 

# app/models/order.rb 
class Order < ActiveRecord::Base 
    set_table_name :long_prefix_orders 
end 

내가 두 장치가 포함 된 제품이 :

나는 이런 식으로 뭔가를 보이는 두 가지 모델이

# test/fixtures/customer.yml 
one: 
    name: Bob 

# test/fixtures/long_prefix_orders.yml 
one: 
    name: Party Supplies 
    customer_id: one 

고객의 고정 작업을하고, 주문 고정하지 않습니다 . 테이블 이름을 복수형에서 단수형으로 변경하는 것은 정착물에서 찾을 수있는 충분히 작은 변화입니까, 아니면 잊어 버린 다른 구성입니까?

답변

0

여기에서 문제는 부모 레코드를 참조 할 때 customer 대신 customer_id을 사용했다는 것입니다. 데이터베이스 필드의 이름이 아닌 조명기에서 관계의 이름을 사용하십시오.

관련 문제