ruby-on-rails - Ruby on rails 测试 - 表 X 没有名为 Y 的列

标签 ruby-on-rails ruby testing devise ruby-on-rails-5

我正在尝试使用默认的 Rails 测试框架编写一些基本的 Rails 测试代码。我的应用程序适用于一个简单的论坛,用户可以在其中发布主题、评论等。

我正在尝试测试论坛(即线程) Controller ,它是:

forums_controller_test.rb

require 'test_helper'

class ForumsControllerTest < ActionController::TestCase
 test "index should be success" do
  get :index
  assert_response :success
 end
end

我正在使用固定装置并遵循本教程: https://www.youtube.com/watch?v=0wIta0fITzc

这是我所有的夹具文件:

评论.yml

comm_one:
  body: MyText
  forum_id: 1

comm_two:
  body: MyText
  forum_id: 2

论坛.yml

for_one:
  title: MyString
  body: MyText
  user_id: 1

for_two:
  title: MyString
  body: MyText
  user_id: 2

用户.yml

user_one: 
  user_id: '1'

user_two: 
  user_id: '2'

我遇到的问题是,当我在终端中运行 rake 时,出现此错误:

错误: ForumsControllerTest#test_index_should_be_success: ActiveRecord::Fixture::FixtureError:表“users”没有名为“user_id”的列。

不确定您是否需要查看我的迁移文件,但如果您需要任何其他信息,请告诉我。

如有任何建议,我将不胜感激。

谢谢

注意:我正在使用 devise gem 进行用户身份验证。这也用于生成用户表。

最佳答案

我认为表的结构存在问题,用户不会有 user_id 列,而只有一个 id 列,如果另一个模型有一个用户,或者属于一个用户,那么该模型将有一个 user_id 列得到对应的User。 查看文档以了解数据库中必须具有的结构:http://guides.rubyonrails.org/association_basics.html

关于ruby-on-rails - Ruby on rails 测试 - 表 X 没有名为 Y 的列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47486831/

相关文章:

c++ - 关于我应该为 Visual Studio 和 Eclipse 使用什么单元测试框架的任何想法(红色代码)

ruby-on-rails - 我需要清除我的 Resque 'processed' 队列吗?

php - 从 PHP 执行 Ruby 脚本并获取输出

ruby-on-rails - ActiveRecord 有 Lint 吗?

ruby - EventMachine 如何编写对按键使用react的键盘处理程序

ruby-on-rails - 在 rspec 特性测试中使用 Devise

python - 通过 Django Selenium 测试运行 chromedriver

javascript - 如何在数组中换行或打断?

ruby-on-rails - 如何引用 Ruby/Rails 规范中的属性?

ruby-on-rails - 这是 Rails 验证线程安全的吗