我有一个基于Rails Tutorial的网站。我在我的用户模型中添加了一个名为“show_extras”的布尔属性,并在“用户配置文件”页面上添加了一个复选框。我的测试现在在到达提及“show_extras”属性的代码时失败,例如“编辑用户”页面。当我手动访问页面时,我没有收到任何错误。怎么了? (我尝试重置一些东西,但这没有帮助。)
这是导致错误的代码行之一(在编辑页面上):
<%= f.check_box :show_extras %>
这是错误消息:
AuthenticationPages登录页面,用于非登录尝试访问受保护 登录后的页面应呈现右页
失败/错误:click_button“登录”
::的ActionView ::模板错误:
#User的未定义方法`show_extras':0 ...
#。/ app / views / users / edit.html.erb ...
答案 0 :(得分:2)
这可能会发生,因为测试数据库当前在User表中没有show_extras
列,而开发数据库则这样。
你最近做过rake db:test:prepare
吗?您可能必须运行它才能在数据库中创建新列。
答案 1 :(得分:2)
只需添加后续内容,即可在.bashrc
中创建别名,并自动完成测试数据库的准备工作:
# ~/.bashrc
alias migrate='rake db:migrate && rake db:test:prepare'
现在,当您准备好迁移数据库时,只需运行migrate
即可完成所有操作。不再需要30分钟来弄清楚为什么你的测试没有通过......