【问题标题】:cant rake db:migrate undefined method erorr无法 rake db:迁移未定义的方法错误
【发布时间】:2019-10-18 10:25:25
【问题描述】:

大家好,我是 Rails 新手,刚刚开始。每次我尝试运行 rake db:migrate 我都会得到这个(跟踪):

rake db:migrate
==  CreateModelNames: migrating ===============================================
-- create_table(:model_names)
rake aborted!
StandardError: An error has occurred, all later migrations canceled:

undefined method `feldtyp' for #<ActiveRecord::ConnectionAdapters::TableDefinition:0x7f729807cfa8>./db/migrate//20191018075455_create_model_names.rb:4:in `up_without_benchmarks'
./db/migrate//20191018075455_create_model_names.rb:3:in `up_without_benchmarks'
(__DELEGATION__):2:in `__send__'
(__DELEGATION__):2:in `migrate'
Tasks: TOP => db:migrate
(See full trace by running task with --trace)
david@david-desktop:~/Railsprojekte/david$ rake db:migrate --trace** Invoke db:migrate (first_time)
** Invoke environment (first_time)
** Execute environment
** Execute db:migrate
==  CreateModelNames: migrating ===============================================
-- create_table(:model_names)
rake aborted!
StandardError: An error has occurred, all later migrations canceled:

undefined method `feldtyp' for #<ActiveRecord::ConnectionAdapters::TableDefinition:0x7f61a32f62f8>./db/migrate//20191018075455_create_model_names.rb:4:in `up_without_benchmarks'
/usr/local/lib/ruby/gems/1.8/gems/activerecord-2.2.2/lib/active_record/connection_adapters/abstract/schema_statements.rb:104:in `create_table'
/usr/local/lib/ruby/gems/1.8/gems/activerecord-2.2.2/lib/active_record/connection_adapters/mysql_adapter.rb:445:in `create_table'
/usr/local/lib/ruby/gems/1.8/gems/activerecord-2.2.2/lib/active_record/migration.rb:346:in `send'
/usr/local/lib/ruby/gems/1.8/gems/activerecord-2.2.2/lib/active_record/migration.rb:346:in `method_missing'
/usr/local/lib/ruby/gems/1.8/gems/activerecord-2.2.2/lib/active_record/migration.rb:326:in `say_with_time'
/usr/local/lib/ruby/1.8/benchmark.rb:293:in `measure'
/usr/local/lib/ruby/gems/1.8/gems/activerecord-2.2.2/lib/active_record/migration.rb:326:in `say_with_time'
/usr/local/lib/ruby/gems/1.8/gems/activerecord-2.2.2/lib/active_record/migration.rb:342:in `method_missing'
./db/migrate//20191018075455_create_model_names.rb:3:in `up_without_benchmarks'
/usr/local/lib/ruby/gems/1.8/gems/activerecord-2.2.2/lib/active_record/migration.rb:280:in `send'
/usr/local/lib/ruby/gems/1.8/gems/activerecord-2.2.2/lib/active_record/migration.rb:280:in `migrate'
/usr/local/lib/ruby/1.8/benchmark.rb:293:in `measure'
/usr/local/lib/ruby/gems/1.8/gems/activerecord-2.2.2/lib/active_record/migration.rb:280:in `migrate'
(__DELEGATION__):2:in `__send__'
(__DELEGATION__):2:in `migrate'
/usr/local/lib/ruby/gems/1.8/gems/activerecord-2.2.2/lib/active_record/migration.rb:480:in `migrate'
/usr/local/lib/ruby/gems/1.8/gems/activerecord-2.2.2/lib/active_record/migration.rb:556:in `call'
/usr/local/lib/ruby/gems/1.8/gems/activerecord-2.2.2/lib/active_record/migration.rb:556:in `ddl_transaction'
/usr/local/lib/ruby/gems/1.8/gems/activerecord-2.2.2/lib/active_record/migration.rb:479:in `migrate'
/usr/local/lib/ruby/gems/1.8/gems/activerecord-2.2.2/lib/active_record/migration.rb:466:in `each'
/usr/local/lib/ruby/gems/1.8/gems/activerecord-2.2.2/lib/active_record/migration.rb:466:in `migrate'
/usr/local/lib/ruby/gems/1.8/gems/activerecord-2.2.2/lib/active_record/migration.rb:394:in `up'
/usr/local/lib/ruby/gems/1.8/gems/activerecord-2.2.2/lib/active_record/migration.rb:377:in `migrate'
/usr/local/lib/ruby/gems/1.8/gems/rails-2.2.2/lib/tasks/databases.rake:111
/usr/local/lib/ruby/gems/1.8/gems/rake-10.4.2/lib/rake/task.rb:240:in `call'
/usr/local/lib/ruby/gems/1.8/gems/rake-10.4.2/lib/rake/task.rb:240:in `execute'
/usr/local/lib/ruby/gems/1.8/gems/rake-10.4.2/lib/rake/task.rb:235:in `each'
/usr/local/lib/ruby/gems/1.8/gems/rake-10.4.2/lib/rake/task.rb:235:in `execute'
/usr/local/lib/ruby/gems/1.8/gems/rake-10.4.2/lib/rake/task.rb:179:in `invoke_with_call_chain'
/usr/local/lib/ruby/1.8/monitor.rb:242:in `synchronize'
/usr/local/lib/ruby/gems/1.8/gems/rake-10.4.2/lib/rake/task.rb:172:in `invoke_with_call_chain'
/usr/local/lib/ruby/gems/1.8/gems/rake-10.4.2/lib/rake/task.rb:165:in `invoke'
/usr/local/lib/ruby/gems/1.8/gems/rake-10.4.2/lib/rake/application.rb:150:in `invoke_task'
/usr/local/lib/ruby/gems/1.8/gems/rake-10.4.2/lib/rake/application.rb:106:in `top_level'
/usr/local/lib/ruby/gems/1.8/gems/rake-10.4.2/lib/rake/application.rb:106:in `each'
/usr/local/lib/ruby/gems/1.8/gems/rake-10.4.2/lib/rake/application.rb:106:in `top_level'
/usr/local/lib/ruby/gems/1.8/gems/rake-10.4.2/lib/rake/application.rb:115:in `run_with_threads'
/usr/local/lib/ruby/gems/1.8/gems/rake-10.4.2/lib/rake/application.rb:100:in `top_level'
/usr/local/lib/ruby/gems/1.8/gems/rake-10.4.2/lib/rake/application.rb:78:in `run'
/usr/local/lib/ruby/gems/1.8/gems/rake-10.4.2/lib/rake/application.rb:176:in `standard_exception_handling'
/usr/local/lib/ruby/gems/1.8/gems/rake-10.4.2/lib/rake/application.rb:75:in `run'
/usr/local/lib/ruby/gems/1.8/gems/rake-10.4.2/bin/rake:33
/usr/local/bin/rake:26:in `load'
/usr/local/bin/rake:26
Tasks: TOP => db:migrate

我的代码是这样的:

class CreateModelNames < ActiveRecord::Migration
  def self.up
    create_table :model_names do |t|
      t.feldtyp :feld_name

      t.timestamps
    end
  end

  def self.down
    drop_table :model_names
  end
end

任何帮助都会得到帮助:)

LG

【问题讨论】:

    标签: ruby-on-rails ruby-on-rails-3 activerecord rubygems


    【解决方案1】:

    错误表明feldtype 不是已知方法,当我查看您的迁移时,它看起来很奇怪,不确定是哪种语言,但它似乎是对迁移的理论描述(写入字段类型,后跟字段名)

    feldtype 替换为实际的数据库列类型。比如写

    t.string :feld_name
    

    (除非feld_name 对您的示例具有完美的含义,否则请使用更有意义/适当/富有表现力的东西,但这当然取决于您的问题领域)

    也许你应该检查一下 rails-guides:https://edgeguides.rubyonrails.org/active_record_migrations.html

    可能的列类型有:binary, boolean, date, datetime, decimal, float, integer, primary_key, string, text, time, timestamp

    【讨论】:

      【解决方案2】:

      啊,现在它终于对你有用了 :)) LG

      【讨论】:

        猜你喜欢
        • 2014-05-19
        • 2011-09-04
        • 2019-08-14
        • 2011-09-07
        • 1970-01-01
        • 2019-10-17
        • 2017-01-11
        • 2014-05-13
        • 2011-10-14
        相关资源
        最近更新 更多