2014-01-07 5 views
0

Я новичок в Postgres, и я получаю эту ошибку при тестировании действия destroy для приложения типа блога. Похоже, проблема заключается в том, что works, а не work, вызывается для данного автора, когда он разрушен - так как в нем есть множественность, но я не уверен, почему это так.зависимый: уничтожить ошибку бросания с postgresql

Author.rb 
has_many :works, :dependent => :destroy 

Ошибка:

AuthorsController::destroy#test_0001_deletes the author: 
ActiveRecord::StatementInvalid: PG::UndefinedColumn: ERROR: column works.author_id does not exist 
LINE 1: SELECT "works".* FROM "works" WHERE "works"."author_id" = $... 
              ^
: SELECT "works".* FROM "works" WHERE "works"."author_id" = $1 ORDER BY works.id ASC 

Тест:

it "deletes the author" do 
    assert_difference 'Author.count', -1 do 
    delete :destroy, :id => author.id 
    end 
end 

Контроллер:

def destroy 
    @author.destroy 
    redirect_to authors_path 
end 

ответ

2

Вопрос, который Postgres жалуется на то, что он не может найти столбец под названием author_id r works, и в результате он не сможет найти соответствующий works для данного Author.

Если вы еще этого не сделали, вам нужно добавить миграцию, чтобы добавить столбец author_id в Work.

+0

вот и все ... чувствую себя немного глупо: p спасибо! – dax

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