我有一个基于 Rails Tutorial 的网站。我向我的用户模型添加了一个名为“show_extras”的 bool 属性,并将其复选框添加到“用户配置文件”页面。现在,当我的测试到达提及“show_extras”属性的代码(例如“编辑用户”页面)时,它们会失败。当我手动访问该页面时,我没有收到任何错误。怎么了? (我尝试重置一些东西,但这没有帮助。)
这是导致错误的代码行之一(在编辑页面上):
<%= f.check_box :show_extras %>
这是错误消息:
AuthenticationPages signin page for non-signed-in try visit protected page after signin should render right page
Failure/Error: click_button "Sign in"
ActionView::Template::Error:
undefined method `show_extras' for #User:0...
# ./app/views/users/edit.html.erb...
最佳答案
发生这种情况的原因可能是测试数据库当前在 User 表中没有 show_extras
列,而开发数据库有。
您最近做过rake db:test:prepare
吗?您可能必须运行它才能在数据库中创建新列。
关于ruby-on-rails - 为什么我的测试代码有错误,但手动访问页面却没有错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16654779/