Я пытаюсь следовать учебному курсу " Добавление 5-звездной оценки" к модели Rails 4, сделанной @Simpleton, и я не могу успешно создать модель для учебника.
Когда я набираю rails g model Rating comment:references user:references score:integer default: 0
он создаст модель. Когда я запускаю rake db:migrate
Я получаю сообщение об ошибке, в котором говорится:
/db/migrate/20140107143726_create_ratings.rb:8: syntax error, unexpected tINTEGER, expecting tSTRING_CONTENT or tSTRING_DBEG or tSTRING_DVAR or tSTRING_END
Что я могу сделать? Есть ли другой способ установить значение по умолчанию для целого числа с именем "оценка"?
Обновить
В "db/migrate/20140107143726_create_ratings.rb" у меня есть:
class CreateRatings < ActiveRecord::Migration
def change
create_table :ratings do |t|
t.references :review, index: true
t.references :user, index: true
t.integer :score
t.string :default
t.string :0
t.timestamps
end
end
end
* Я изменил комментарий к обзору
Будет ли это работать?
class CreateRatings < ActiveRecord::Migration
def change
create_table :ratings do |t|
t.references :review, index: true
t.references :user, index: true
t.integer :score, :default => 0
t.timestamps
end
end
end
Там проблема в вашей миграции /db/migrate/20140107143726_create_ratings.rb
.
Удостоверьтесь, что линия score
там выглядит примерно так:
add_column :ratings, :score, :integer, default: 0
ОБНОВИТЬ
Да, этот пример должен работать:
class CreateRatings < ActiveRecord::Migration
def change
create_table :ratings do |t|
t.references :review, index: true
t.references :user, index: true
t.integer :score, :default => 0
t.timestamps
end
end
end