Проблема с переносом модели в ruby - PullRequest
0 голосов
/ 09 апреля 2010

Я запускаю скрипт / генерирую модель запроса

редактировать query.rb в моделях ..

class Query < ActiveRecord::Base #I even tried Migrations instead of Base
  def sef.up
    create table :queries do|t|
      t.string :name
    end
  end

  def self.down
    drop_table :queries
  end
end

, запустите rake db: migrate.

и то, что я вижу в БД, это:

mysql> desc queries;
+------------+----------+------+-----+---------+----------------+
| Field      | Type     | Null | Key | Default | Extra          |
+------------+----------+------+-----+---------+----------------+
| id         | int(11)  | NO   | PRI | NULL    | auto_increment | 
| created_at | datetime | YES  |     | NULL    |                | 
| updated_at | datetime | YES  |     | NULL    |                | 
+------------+----------+------+-----+---------+----------------+

Где находится поле "имя"?

ПОМОГИТЕ! Ура!

Ответы [ 2 ]

2 голосов
/ 09 апреля 2010

То, что вы хотите, это script/generate migration your_migration_name.

Редактировать # 1

Я объясню лучше:

На самом деле, при запуске script/generate model query были созданы некоторые файлы, включая models/query.rb и db/migrate/XXX_create_query.rb. Для создания таблицы queries необходимо отредактировать второй файл (db/migrate/XXX_create_query.rb) и вставить отправленный вами код:

class CreateQueries < ActiveRecord::Migration
   def self.up
      create_table :queries do |t|
         t.string :name
      end
   end

   def self.down
     drop_table :queries
   end
end

, а затем запустить rake db:migrate.

Редактировать # 2

Как указал JacobM, поскольку вы уже запускаете rake db:migrate, теперь вам просто нужно создать еще одну миграцию

script/generate migration add_name_column_to_queries_table

отредактируйте файл db/migrate/XXX_add_name_column_to_queries_table.rb, чтобы вставить новый столбец name, а затем снова выполните rake db:migrate.

1 голос
/ 09 апреля 2010

Ваши изменения данных не идут в вашей модели, они идут в вашей миграции. Когда вы запустили скрипт / сгенерировать модель, в дополнение к файлу query.rb в models вы также получили бы файл XXX_add_queries.rb в db/migrations. Это файл, который нужно отредактировать, чтобы добавить другое поле.

Однако, если вы уже запустили rake db: migrate, вам нужно добавить новую миграцию, чтобы добавить новое поле (script/generate migration add_name_to_queries), отредактировать новый файл миграции и снова запустить db: migrate.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...