【问题标题】:undefined method `deciaml' when migrating迁移时未定义的方法“deciaml”
【发布时间】:2013-09-11 08:44:39
【问题描述】:

您好,我有一个创建表的迁移(并向现有表添加一列)。

class CreateAdminModule < ActiveRecord::Migration
  def change
    create_table :admin_module do |t|
      t.decimal :no_of_devices_multiplier
      t.decimal :option_1_multiplier
      t.decimal :option_2_multiplier
      t.deciaml :option_3_multiplier
      t.decimal :option_4_multiplier
      t.decimal :option_5_multiplier

      t.timestamps
    end
  end

  add_column :admin_user_roles, :module_admin, :boolean
end

我正在使用 mysql2 gem。当我运行迁移时,我得到了这个:

c:\Sites\site>rake db:migrate
-- add_column(:admin_user_roles, :module_admin, :boolean)
   -> 0.4726s
==  CreateAdminCirrus: migrating ==============================================
-- create_table(:admin_module)
rake aborted!
An error has occurred, all later migrations canceled:

undefined method 'deciaml' for #<ActiveRecord::ConnectionAdapters::TableDefinition:0x3c00a80>c:/Sites/site/db/migrate/
20130911082405_create_admin_module.rb:7:in 'block in change'
c:/Sites/site/db/migrate/20130911082405_create_admin_module.rb:3:in 'change'
C:in 'migrate'
Tasks: TOP => db:migrate
(See full trace by running task with --trace)

我很困惑为什么会收到此错误。我很确定十进制是有效的数据类型?我在处理货币时使用十进制。

【问题讨论】:

    标签: mysql ruby-on-rails ruby ruby-on-rails-3 rails-migrations


    【解决方案1】:

    一行中的拼写错误:

    t.deciaml :option_3_multiplier
    

    改成:

    t.decimal :option_3_multiplier
    

    【讨论】:

    • 哈哈,亲爱的...谢谢! 脸红
    猜你喜欢
    • 2011-06-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-12
    • 2017-04-19
    • 1970-01-01
    • 2019-06-17
    相关资源
    最近更新 更多