【发布时间】:2015-05-20 12:45:28
【问题描述】:
我需要将t.integer :mark_up 更改为float 我该怎么做?我已经尝试在我的终端rails g migration change_column(:stakes, :mark_up, :float) 中不断获得syntax error near unexpected token ('
【问题讨论】:
标签: ruby-on-rails ruby-on-rails-4.2
我需要将t.integer :mark_up 更改为float 我该怎么做?我已经尝试在我的终端rails g migration change_column(:stakes, :mark_up, :float) 中不断获得syntax error near unexpected token ('
【问题讨论】:
标签: ruby-on-rails ruby-on-rails-4.2
您不能在终端中使用 rails 代码 (change_column)。
您需要做的是首先创建迁移:rails generate migration ChangeMarkUpType,然后将您的 rails 代码放入创建的文件中。
您可以阅读有关迁移的更多信息here
【讨论】:
在您的终端中:
rails generate migration ChangeMarkUpToFloat
在创建的文件中:db/migrate/2015xxxxxxxxxx/change_mark_up_to_float.rb
编辑为:
class ChangeMarkUpToFloat < ActiveRecord::Migration
def change
change_column :stakes, :mark_up, :float
end
end
然后回到你的终端:
rake db:migrate
【讨论】:
change 方法。如果你运行rake db:migrate:down,它怎么知道要转换成什么类型?考虑改为定义up 和down。