我有一个rails 5.0.0.1应用程序,它有书籍和作者的模型。 在生产和开发中,页面按预期显示,显示book.author.name 但是,在我的测试中,book.author是有效的并且正如预期的那样,但是book.author.name会产生错误“ActionView :: Template :: Error:undefined method`name'for nil:NilClass”
使用byebug我发现该书的author_id设置为459301548但没有该作者的作者。
minitest如何处理不同的事情,以便错误只发生在测试环境中?
我尝试过移动方法并尝试不同的方法来填充@books以便在我的@ books中使用。但唯一可行的方法是删除对book.author.name
的引用错误仅在未登录时发生,但我需要检查我的测试以确保在其他情况下我没有得到它。
答案 0 :(得分:0)
我不知道为什么会有所不同,但是当我在控制器中更改变量赋值时:
@books = Book.paginate(...)
为:
@books = Book.all.paginate(...)
错误消失了。 这些页面似乎仍然以任何方式显示开发和生产中的正确信息。