2010-11-02 1 views
0

Я только что создал новую таблицу с использованием миграции Rails, затем создал модель, в которой я добавил свои отношения.Таблица 'project_dev.users' не существует

Я перезапустил консоль, а консоль MySQL отображает таблицу в базе данных project_dev.

Когда я пытаюсь создать новую запись в моей консоли Руби, я получаю:

Mysql::Error: Table 'project_dev.trace_users' doesn't exist from C:/Sanj/Ruby192/lib/ruby/gems/1.9.1/gems/activerecord-3.0.1/lib/act ive_record/connection_adapters/mysql_adapter.rb:287:in 'query' from C:/Sanj/Ruby192/lib/ruby/gems/1.9.1/gems/activerecord-3.0.1/lib/act ive_record/connection_adapters/mysql_adapter.rb:287:in 'execute' from C:/Sanj/Ruby192/lib/ruby/gems/1.9.1/gems/activerecord-3.0.1/lib/act ive_record/connection_adapters/mysql_adapter.rb:438:in 'columns' from C:/Sanj/Ruby192/lib/ruby/gems/1.9.1/gems/activerecord-3.0.1/lib/act ive_record/base.rb:679:in 'columns' from C:/Sanj/Ruby192/lib/ruby/gems/1.9.1/gems/activerecord-3.0.1/lib/act ive_record/persistence.rb:285:in 'attributes_from_column_definition' from C:/Sanj/Ruby192/lib/ruby/gems/1.9.1/gems/activerecord-3.0.1/lib/act ive_record/locking/optimistic.rb:62:in 'attributes_from_column_definition' from C:/Sanj/Ruby192/lib/ruby/gems/1.9.1/gems/activerecord-3.0.1/lib/act ive_record/base.rb:1396:in 'initialize' from (irb):2:in 'new' from (irb):2 from C:/Sanj/Ruby192/lib/ruby/gems/1.9.1/gems/railties-3.0.1/lib/rails/c ommands/console.rb:44:in 'start' from C:/Sanj/Ruby192/lib/ruby/gems/1.9.1/gems/railties-3.0.1/lib/rails/c ommands/console.rb:8:in 'start' from C:/Sanj/Ruby192/lib/ruby/gems/1.9.1/gems/railties-3.0.1/lib/rails/c ommands.rb:23:in '<top (required)>' from script/rails:6:in 'require' from script/rails:6:in '<main>'

+1

Хорошо, существует ли 'trace_users'? –

+0

@Pekka ... см. Мой ответ ниже o =) – sscirrus

ответ

2

Кажется, я был немного более некомпетентным вчера, чем я хотел бы признать - таблицы миграции были созданы в единственной форме вместо множественного числа - это привело к таблице trace_user вместо trace_users.

@Ben - Я назвал таблицу тем, что в системе записано несколько таблиц трассировки, записывающих разные события, и я предпочел, чтобы все таблицы трассировки были объединены - IMHO помогает сделать таблицы более понятными, когда пытаясь понять систему в целом.

1

Вы имели модель пользователя, а затем добавили модель трассировки, верно? Вы сделали все правильно, за исключением того, что, поскольку вы добавили пользователей has_many в Trace, теперь вам нужно создать таблицу ассоциаций (через другую миграцию). Подумайте о правильности направления ассоциации (пользователь has_many traces?), Чтобы таблица была user_traces, что для меня звучит лучше.

 Смежные вопросы

  • Нет связанных вопросов^_^