我正在尝试使用默认的 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/