У меня следующая проблема с моим функциональным тестом.
mrbernz: mylife bernardleung $ ruby test / функциональный / forums_controller_test.rb
.....
1) Ошибка:
test_should_create_forum (ForumsControllerTest):
ActiveRecord :: StatementInvalid: Mysql :: BadFieldError: Неизвестный столбец 'id: 3 name' в 'списке полей': INSERT INTO roles
(id
, id:3 name
) VALUES (707834473, 'Moderator')
Трассировка стека точек ошибок следующим образом ...
/ Библиотека / Ruby / Сайт / 1.8 / rubygems / custom_require.rb: 31: в gem_original_require'
/Library/Ruby/Site/1.8/rubygems/custom_require.rb:31:in
require '
/Library/Ruby/Gems/1.8/gems/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
require_or_load '
/Library/Ruby/Gems/1.8/gems/activesupport-2.3.8/lib/active_support/dependencies.rb:224:in 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:in 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:in 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/gems/activerecord-2.3.8/lib/active_record/fixtures.rb:848:in fixtures'
./test/functional/../test_helper.rb:35
test/functional/forums_controller_test.rb:1:in
require '
Тест / функционал / forums_controller_test.rb: 1
Невозможно загрузить role_user, основная причина, по которой такой файл не загружается - role_user
/ Библиотека / Ruby / Сайт / 1.8 / rubygems / custom_require.rb: 31: в gem_original_require'
/Library/Ruby/Site/1.8/rubygems/custom_require.rb:31:in
require '
/Library/Ruby/Gems/1.8/gems/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
require_or_load '
/Library/Ruby/Gems/1.8/gems/activesupport-2.3.8/lib/active_support/dependencies.rb:224:in 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:in 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:in 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/gems/activerecord-2.3.8/lib/active_record/fixtures.rb:848:in `fixtures '
тест / функционал / forums_controller_test.rb: 4
Мой forum_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
Я не понимаю, почему он жалуется на 'role_user', поскольку я нигде не спрашиваю об этом, и то, что я прошу или объявляю, это 'role_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)
помощь?!