2012-02-26 7 views
2

Привет, я создал таблицу для приложения вики, которое я делал. В начале было довольно просто, что у меня была таблица «Вопросы» и таблица «Ответы». Теперь я хочу добавить к нему пользователей. Поэтому для этого я создал таблицу пользователей, и вся запись готова. Часть вики работает, и часть пользователей работает, но у меня возникают проблемы с их объединением.Добавление индекса в таблицу, которую я уже создал в SQLite?

я первый создал Вопросы, как помост следующим образом:

rails g scaffold Question title:string body:string 

Тогда ответы следующим образом:

rails g scaffold Answer question_id:integer content:string 

Затем я попытался добавить users_id столбец после создания таблицы Users:

rails generate migration add_users_id_to_questions user_id:integer 

Затем я попытался проиндексировать столбец user_id, добавив следующую строку в mi Gration файл:

class AddUserIdToQuestions < ActiveRecord::Migration 
     def change 
     add_column :questions, :user_id, :integer 
     end 
     add_index :questions, :user_id 
    end 

я грабли: дб мигрируют, но не показывает изменения после того, как я бегу миграции. Есть ли другой способ индексировать user_id, кроме как добавить столбец в файл миграции. Я даже запускал rake db: rollback, поэтому добавление столбца user_id ушло, но когда я делаю изменения и запускаю rake db: migrate, он дает мне ошибку user_id не существует. Было бы очень полезно, если бы вы могли помочь мне создать индекс. Я запускаю Rails 3, SQLite - как свою БД. Спасибо.

+0

Вы пытались вызвать add_index в методе xhange? – Fivell

ответ

5

Откат, а затем повторный запуск миграции с add_index внутри блока change.

class AddUserIdToQuestions < ActiveRecord::Migration 
    def change 
    add_column :questions, :user_id, :integer 
    add_index :questions, :user_id 
    end 
end