[英]ruby rails functional test problem
我的功能测试遇到以下问题。
mrbernz:mylife bernardleung $ ruby test / functional / forums_controller_test.rb .....
1)错误:test_should_create_forum(ForumsControllerTest):ActiveRecord :: StatementInvalid:Mysql :: BadFieldError:'字段列表'中的未知列'id:3 name':INSERT INTO roles
( id
, id:3 name
)值(707834473,'主持人')
错误点的堆栈跟踪如下:
/Library/Ruby/Site/1.8/rubygems/custom_require.rb:31:in gem_original_require' /Library/Ruby/Site/1.8/rubygems/custom_require.rb:31:in
/ gem_original_require' /Library/Ruby/Site/1.8/rubygems/custom_require.rb:31:in
/ gem_original_require' /Library/Ruby/Site/1.8/rubygems/custom_require.rb:31:in
/ gem_original_require' /Library/Ruby/Site/1.8/rubygems/custom_require.rb:31:in
/ gem_original_require' /Library/Ruby/Site/1.8/rubygems/custom_require.rb:31:in
/ gem_original_require' /Library/Ruby/Site/1.8/rubygems/custom_require.rb:31:in
/ gem_original_require' /Library/Ruby/Site/1.8/rubygems/custom_require.rb:31:in
require'/ gem_original_require' /Library/Ruby/Site/1.8/rubygems/custom_require.rb:31:in
/ gem_original_require' /Library/Ruby/Site/1.8/rubygems/custom_require.rb:31:in
/ gem_original_require' /Library/Ruby/Site/1.8/rubygems/custom_require.rb:31:in
/ gem_original_require' /Library/Ruby/Site/1.8/rubygems/custom_require.rb:31:in
/ gem_original_require' /Library/Ruby/Site/1.8/rubygems/custom_require.rb:31:in
/activesupport-2.3.8/lib/active_support/dependencies.rb:158:in require' /Library/Ruby/Gems/1.8/gems/activesupport-2.3.8/lib/active_support/dependencies.rb:265:in
Library require' /Library/Ruby/Gems/1.8/gems/activesupport-2.3.8/lib/active_support/dependencies.rb:265:in
Ruby require' /Library/Ruby/Gems/1.8/gems/activesupport-2.3.8/lib/active_support/dependencies.rb:265:in
Gems require' /Library/Ruby/Gems/1.8/gems/activesupport-2.3.8/lib/active_support/dependencies.rb:265:in
1.8 require' /Library/Ruby/Gems/1.8/gems/activesupport-2.3.8/lib/active_support/dependencies.rb:265:in
gems require' /Library/Ruby/Gems/1.8/gems/activesupport-2.3.8/lib/active_support/dependencies.rb:265:in
activesupport-2.3.8 require' /Library/Ruby/Gems/1.8/gems/activesupport-2.3.8/lib/active_support/dependencies.rb:265:in
lib require' /Library/Ruby/Gems/1.8/gems/activesupport-2.3.8/lib/active_support/dependencies.rb:265:in
active_support require' /Library/Ruby/Gems/1.8/gems/activesupport-2.3.8/lib/active_support/dependencies.rb:265:in
dependencies.rb:265:in require_or_load' depend_on' /Library/Ruby/Gems/1.8/gems/activesupport-2.3.8/lib/active_support/dependencies.rb:136:in
require_dependency中/Library/Ruby/Gems/1.8/gems/activerecord-2.3.8/lib/active_record/fixtures.rb:853:在try_to_load_dependency' /Library/Ruby/Gems/1.8/gems/activerecord-2.3.8/lib/active_record/fixtures.rb:868:in
require_fixture_classes的/Library/Ruby/Gems/1.8/gems/activerecord-2.3.8/lib/active_record/fixtures.rb:865:中的each' /Library/Ruby/Gems/1.8/gems/activerecord-2.3.8/lib/active_record/fixtures.rb:865:in
require_fixture_classes'中/Library/Ruby/Gems/1.8/g ems / activerecord-2.3.8 / lib / active_record / fixtures.rb:848:在fixtures' ./test/functional/../test_helper.rb:35 test/functional/forums_controller_test.rb:1:in
/ functional / forums_controller_test.rb:1无法加载Roles_user,导致未加载此类文件的潜在原因-Roles_user
/Library/Ruby/Site/1.8/rubygems/custom_require.rb:31:in gem_original_require' /Library/Ruby/Site/1.8/rubygems/custom_require.rb:31:in
/ gem_original_require' /Library/Ruby/Site/1.8/rubygems/custom_require.rb:31:in
/ gem_original_require' /Library/Ruby/Site/1.8/rubygems/custom_require.rb:31:in
/ gem_original_require' /Library/Ruby/Site/1.8/rubygems/custom_require.rb:31:in
/ gem_original_require' /Library/Ruby/Site/1.8/rubygems/custom_require.rb:31:in
/ gem_original_require' /Library/Ruby/Site/1.8/rubygems/custom_require.rb:31:in
/ gem_original_require' /Library/Ruby/Site/1.8/rubygems/custom_require.rb:31:in
require'/ gem_original_require' /Library/Ruby/Site/1.8/rubygems/custom_require.rb:31:in
/ gem_original_require' /Library/Ruby/Site/1.8/rubygems/custom_require.rb:31:in
/ gem_original_require' /Library/Ruby/Site/1.8/rubygems/custom_require.rb:31:in
/ gem_original_require' /Library/Ruby/Site/1.8/rubygems/custom_require.rb:31:in
/ gem_original_require' /Library/Ruby/Site/1.8/rubygems/custom_require.rb:31:in
/activesupport-2.3.8/lib/active_support/dependencies.rb:158:in require' /Library/Ruby/Gems/1.8/gems/activesupport-2.3.8/lib/active_support/dependencies.rb:265:in
Library require' /Library/Ruby/Gems/1.8/gems/activesupport-2.3.8/lib/active_support/dependencies.rb:265:in
Ruby require' /Library/Ruby/Gems/1.8/gems/activesupport-2.3.8/lib/active_support/dependencies.rb:265:in
Gems require' /Library/Ruby/Gems/1.8/gems/activesupport-2.3.8/lib/active_support/dependencies.rb:265:in
1.8 require' /Library/Ruby/Gems/1.8/gems/activesupport-2.3.8/lib/active_support/dependencies.rb:265:in
gems require' /Library/Ruby/Gems/1.8/gems/activesupport-2.3.8/lib/active_support/dependencies.rb:265:in
activesupport-2.3.8 require' /Library/Ruby/Gems/1.8/gems/activesupport-2.3.8/lib/active_support/dependencies.rb:265:in
lib require' /Library/Ruby/Gems/1.8/gems/activesupport-2.3.8/lib/active_support/dependencies.rb:265:in
active_support require' /Library/Ruby/Gems/1.8/gems/activesupport-2.3.8/lib/active_support/dependencies.rb:265:in
dependencies.rb:265:in require_or_load' depend_on' /Library/Ruby/Gems/1.8/gems/activesupport-2.3.8/lib/active_support/dependencies.rb:136:in
require_dependency中/Library/Ruby/Gems/1.8/gems/activerecord-2.3.8/lib/active_record/fixtures.rb:853:在try_to_load_dependency' /Library/Ruby/Gems/1.8/gems/activerecord-2.3.8/lib/active_record/fixtures.rb:868:in
require_fixture_classes的/Library/Ruby/Gems/1.8/gems/activerecord-2.3.8/lib/active_record/fixtures.rb:865:中的each' /Library/Ruby/Gems/1.8/gems/activerecord-2.3.8/lib/active_record/fixtures.rb:865:in
require_fixture_classes'中/Library/Ruby/Gems/1.8/g ems / activerecord-2.3.8 / lib / active_record / fixtures.rb:848:在“夹具”测试/功能/forums_controller_test.rb:4中
我的forums_controller_test.rb如下所示(无论如何前几行)
require File.dirname(__FILE__) + '/../test_helper'
class ForumsControllerTest < ActionController::TestCase
fixtures :forums, :users, :roles, :roles_users
test "should get index" do
get :index
assert_response :success
assert_not_nil assigns(:forums)
end
我不明白为什么它抱怨“ roles_user”,因为我在任何地方都没有要求,而我要查询或声明的是“ roles_users”,这是我拥有的表!
mysql> show tables;
+-----------------------+
| Tables_in_mylife_test |
+-----------------------+
| articles |
| categories |
| forums |
| pages |
| posts |
| roles |
| roles_users |
| schema_migrations |
| topics |
| users |
+-----------------------+
10 rows in set (0.15 sec)
救命?!
从ForumsControllerTest中的装置声明中删除:roles_users。 通过指定:roles_users作为固定装置,它试图加载名为RolesUser的模型。 我假设它是一个has_and_belongs_to_many
连接表。
确保您的users.yml
装置具有:
user:
roles: moderator
并且您的role.yml装置具有:
moderator:
name: 'Moderator'
并且该id
值未在user.yml
或roles.yml
文件中设置。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.