2

我有一个基于Rails 教程的网站。我在我的用户模型中添加了一个名为“show_extras”的布尔属性,并在用户配置文件页面中添加了一个复选框。我的测试现在在到达提及“show_extras”属性的代码时失败,例如“编辑用户”页面。当我手动访问该页面时,我没有收到任何错误。怎么了?(我试过重置东西,但这没有帮助。)

这是导致错误的代码行之一(在编辑页面上):

<%= f.check_box :show_extras %>

这是错误消息:

未登录的 AuthenticationPages 登录页面尝试在登录后访问受保护的页面应该呈现正确的页面
失败/错误:click_button“登录”
ActionView::Template::Error:
#User:0 的未定义方法`show_extras' ...
# ./app/views/users/edit.html.erb...

4

2 回答 2

2

只是一个后续添加,您可以在您的.bashrc和准备测试数据库中创建一个别名将自动完成:

# ~/.bashrc

alias migrate='rake db:migrate && rake db:test:prepare'

现在,当您准备好迁移数据库时,只需运行即可migrate,一切都已处理完毕。没有更多的 30 分钟试图弄清楚为什么你的测试没有通过....

于 2013-05-20T22:04:37.637 回答
2

这可能是因为测试数据库当前在用户表中没有show_extras列,而开发数据库有。

rake db:test:prepare最近做的吗?您可能必须运行它才能在数据库中创建新列。

于 2013-05-20T17:32:07.813 回答