2015-09-20 2 views
2

У меня есть странная ошибка имен, связанная с FactoryGirl. Модель Post ⤞ User. Код:FactoryGirl error: неинициализированная константа Post :: user

require 'factory_girl' 
require 'active_record' 

class User < ActiveRecord::Base ; end 
class Post < ActiveRecord::Base 
    has_one :moderator, class_name: :user 
end 

::FactoryGirl.define do 
    factory :user do 
    name 'Ghghghgh Ghghg' 
    end 
    factory :post do 
    text 'Lorem ipsum etc' 
    association :moderator, factory: :user, strategy: :create 
    end 
end 

Требуется штраф, возвращение true. Теперь, когда я пытаюсь создать экземпляр, я получаю эту ошибку:

FactoryGirl.create :post 
#⇒ NameError: uninitialized constant Post::user 

Что очевидно, я не хватает?

ответ

3

Проблема здесь:

has_one :moderator, class_name: :user 

Там нет класса по имени user; имя класса: User. Вы хотите:

has_one :moderator, class_name: "User" 
+1

О, да, спасибо. Я перепутал вещи и продолжал писать AR-код в стиле FactoryGirl. Свежий глаз - великая сила. Спасибо. – mudasobwa

Смежные вопросы