Я три модели Comment
, User
и Project
.Project
и Comment
должны указывать на другие объекты, чтобы быть действительными.Например, комментарий должен указывать на автора (пользователя) и проект.
Связанные файлы приборов выглядят так:
# comments.yml
test_comment:
author: users(:test_user)
project: projects(:test_project)
# users.yml
test_user:
name: 'test user'
# projects.yml
test_project:
name: 'Test'
description: 'This is a test'
owner: users(:test_user)
Однако я обнаружил, что мои приборывероятно настроены неправильно.Rails возвращает false
, если я пытаюсь сохранить комментарий:
assert_equal true, comments(:test_comment)
#=> false
Я вижу, что существуют внешние ключи для проекта и автора:
=> #<Comment:0x00007f9b1661f3d8
id: 137725605,
body: "",
project_id: 745075726,
author_id: "31ceee04-5307-5059-91db-0dc2068a780c",
created_at: Fri, 22 Feb 2019 13:17:58 UTC +00:00,
updated_at: Fri, 22 Feb 2019 13:17:58 UTC +00:00>
Но когда я их опрашиваюRails возвращает nil
.
> comments(:test_comment).author
=> nil
> comments(:test_comment).project
=> nil
Я ожидал, что один вернет users(:test_user)
, а другой вернет projects(:test_project)
.Я подумал, что, возможно, мне нужно использовать ERB в моем yaml:
test_comment:
author: <%= users(:test_user) %>
project: <%= projects(:test_project) %>
Но эти результаты - поток ошибок при запуске моих тестов:
NoMethodError: undefined method `users' for #<#<Class:0x00007f9b17692ff8>:0x00007f9b17692dc8>
Что мне нужно сделатьуказать светильники на другие светильники?Это можно сделать?Что я сделал не так?