Je ne suis pas en mesure de créer des colonnes de base de données lorsque j'utilise t.string ou t.number.Erreur de migration de base de données simple dans Rails
Quand je ne rake db: migrate i got ce
C:\Ruby\joker\chapter3>rake db:migrate
(in C:/Ruby/joker/chapter3)
== CreateComicBooks: migrating ===============================================
-- create_table(:comic_books)
-> 0.0630s
== CreateComicBooks: migrated (0.0640s) ======================================
J'ai utilisé le code suivant
class ComicBook < ActiveRecord::Base
def self.up
create_table :comic_books do |t|
t.string :title
t.string :writer
t.string :artist
t.integer :issue
t.string :publisher
t.timestamps
end
end
def self.down
drop_table :comic_books
end
end
J'ai aussi essayé avec
class ComicBook < ActiveRecord::Base
def self.up
create_table :comic_books do |t|
t.column "title", :string
t.column "writer", :string
t.column "artist", :string
t.column "issue", :number
t.column "publisher", :string
t.timestamps
end
end
def self.down
# called when a migration is reversed
drop_table :comic_books
end
end
Dans la base de données que je suis obtenir la sortie suivante
mysql> show tables;
+-----------------------------------+
| Tables_in_comic_books_development |
+-----------------------------------+
| comic_books |
| schema_migrations |
+-----------------------------------+
2 rows in set (0.00 sec)
mysql> describe comic_books;
+------------+----------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+------------+----------+------+-----+---------+----------------+
| id | int(11) | NO | PRI | NULL | auto_increment |
| created_at | datetime | YES | | NULL | |
| updated_at | datetime | YES | | NULL | |
+------------+----------+------+-----+---------+----------------+
3 rows in set (0.01 sec)
mysql>
Maintenant, quand je suis en train de créer un nouveau disque que je reçois ce
C:\Ruby\joker\chapter3>ruby script/console
Loading development environment (Rails 2.3.8)
>> mycb = ComicBook.new
=> #<ComicBook id: nil, created_at: nil, updated_at: nil>
>> mycb.title = 'All new'
NoMethodError: undefined method `title=' for #<ComicBook id: nil, created_at: ni
l, updated_at: nil>
from C:/Ruby/lib/ruby/gems/1.8/gems/activerecord-2.3.8/lib/active_record
/attribute_methods.rb:259:in `method_missing'
from (irb):2
Je pense que d'une erreur très faible mais je ne peux pas juste chiffre dehors.
Dans l'attente de votre aide et de votre soutien.
Merci
Vous mettez des migrations dans votre modèle. Ceci est une erreur. Reportez-vous à la réponse de tsdbrown pour résoudre votre problème. Quelqu'un vous l'a déjà dit dans votre autre question ... (http://stackoverflow.com/questions/3777645/error-while-creating-new-object-in-rails). – Mischa