Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/57.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails RubyonRails:RakeDB:运行scaffold后发生迁移错误_Ruby On Rails_Ruby_Database - Fatal编程技术网

Ruby on rails RubyonRails:RakeDB:运行scaffold后发生迁移错误

Ruby on rails RubyonRails:RakeDB:运行scaffold后发生迁移错误,ruby-on-rails,ruby,database,Ruby On Rails,Ruby,Database,有一个小问题正在发生,我不太确定我做了什么,但我只是创建了一个rails应用程序,后面跟着这些命令 我跑: rails generate scaffold Post heading body:text price:decimal neighborhood external_url timestamp 在my terminal中,后跟: rake db:migrate 接下来,我得到一个错误,内容如下: == 20150108012341 CreatePosts: migrating

有一个小问题正在发生,我不太确定我做了什么,但我只是创建了一个rails应用程序,后面跟着这些命令

我跑:

rails generate scaffold Post heading body:text price:decimal neighborhood external_url timestamp
在my terminal中,后跟:

rake db:migrate
接下来,我得到一个错误,内容如下:

    == 20150108012341 CreatePosts: migrating ======================================
    -- create_table(:posts)
       -> 0.0021s
    == 20150108012341 CreatePosts: migrated (0.0022s) =============================

    rake aborted!
    StandardError: An error has occurred, this and all later migrations canceled:

    wrong number of arguments (1 for 0)/Users/taimurknaziri/.rvm/gems/ruby-2.1.1/gems/activerecord-4.2.0.beta2/lib/active_record/connection_adapters/abstract_adapter.rb:271:in `initialize'
    /Users/taimurknaziri/.rvm/gems/ruby-2.1.1/gems/activerecord-
...
4.2.0.beta2/lib/active_record/tasks/database_tasks.rb:135:in `migrate'
    /Users/taimurknaziri/.rvm/gems/ruby-2.1.1/gems/activerecord-4.2.0.beta2/lib/active_record/railties/databases.rake:44:in `block (2 levels) in <top (required)>'
    /Users/taimurknaziri/.rvm/gems/ruby-2.1.1/bin/ruby_executable_hooks:15:in `eval'
    /Users/taimurknaziri/.rvm/gems/ruby-2.1.1/bin/ruby_executable_hooks:15:in `<main>'
    Tasks: TOP => db:migrate
    (See full trace by running task with --trace)
迁移文件:

class CreatePosts < ActiveRecord::Migration
  def change
    create_table :posts do |t|
      t.string :heading
      t.text :body
      t.decimal :price
      t.string :neighborhood
      t.string :external_url
      t.string :timestamp

      t.timestamps null: false
    end
  end
end

这就是命令应该是什么

rails generate scaffold Post heading:string body:text price:decimal neighbourhood:string  externalurl:string timestamp:string

您应该提到所有字段的数据类型。

问题出在我的gem文件中,我的rails版本是rails4.2beta2。我在这里找到了解决方案:


我必须添加gem arel并运行bundle update arel,然后再安装bundle。

scaffold语法看起来不正确。你可能需要邻居和外部的类型显示迁移文件添加了迁移文件@AnthonyOok,所以这很奇怪,因为我尝试在另一个应用程序上测试它,似乎每次我运行rake db:migrate时,我都会得到错误rake aborted!。。。你的脚手架对我来说很好。您的架构尚未包含posts表,对吗?仍然会收到错误。我甚至尝试重新安装rails。