Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/22.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 升级到Rails 4和Ruby 2后ArgumentError(参数数目错误(1代表0))_Ruby On Rails_Ruby_Oracle_Ruby On Rails 4 - Fatal编程技术网

Ruby on rails 升级到Rails 4和Ruby 2后ArgumentError(参数数目错误(1代表0))

Ruby on rails 升级到Rails 4和Ruby 2后ArgumentError(参数数目错误(1代表0)),ruby-on-rails,ruby,oracle,ruby-on-rails-4,Ruby On Rails,Ruby,Oracle,Ruby On Rails 4,我从Ruby 1.8.7和Rails 3.0.9升级到Ruby 2和Rails 4.0.2 刷新网页localhost:3000时出错。我试图删除所有布局代码applicaton.html.erb和application.rb控制器代码,以排除Ruby或Rails版本的任何更改。在控制台中,除了回溯之外,我看不到任何东西 这次崩溃发生在Linux和Oracle、Mac和Postgress本地数据库中 在对Oracle的sys表执行Select时会发生错误,尤其是获取SCHEMA_MIGRATIO

我从Ruby 1.8.7和Rails 3.0.9升级到Ruby 2和Rails 4.0.2

刷新网页localhost:3000时出错。我试图删除所有布局代码applicaton.html.erb和application.rb控制器代码,以排除Ruby或Rails版本的任何更改。在控制台中,除了回溯之外,我看不到任何东西

这次崩溃发生在Linux和Oracle、Mac和Postgress本地数据库中

在对Oracle的sys表执行Select时会发生错误,尤其是获取SCHEMA_MIGRATIONS表的信息时

我的档案:

ruby '2.0.0'
source 'https://rubygems.org'
gem 'rails', '4.0.2'
gem 'activerecord-session_store'
gem 'net-ldap'
gem "composite_primary_keys", :require =>'composite_primary_keys'
gem 'sass-rails', '~> 4.0.0'
gem 'uglifier', '>= 1.3.0'
gem 'coffee-rails', '~> 4.0.0'
gem 'therubyracer' #, '0.11.0beta5'
gem 'libv8', '~> 3.11.8'
gem 'execjs'
gem 'jquery-rails'
gem 'rails-observers'
gem 'turbolinks'
gem 'jbuilder', '~> 1.2'
group :doc do
  # bundle exec rake doc:rails generates the API under doc/api.
  gem 'sdoc', require: false
end
group :oracle do
  gem 'ruby-oci8'
  gem 'activerecord-oracle_enhanced-adapter'
end
gem 'debugger', group: [:development, :test]
服务器控制台:

=> Booting WEBrick
=> Rails 4.0.2 application starting in development on http://0.0.0.0:3000
=> Run `rails server -h` for more startup options
=> Ctrl-C to shutdown server
[2013-12-30 16:53:26] INFO  WEBrick 1.3.1
[2013-12-30 16:53:26] INFO  ruby 2.0.0 (2013-11-22) [i686-linux]
[2013-12-30 16:53:26] INFO  WEBrick::HTTPServer#start: pid=22522 port=3000


Started GET "/" for nnn.nn.nn.nnn at 2013-12-30 16:53:55 +0100
  ActiveRecord::SchemaMigration Load (1.4ms)  SELECT "SCHEMA_MIGRATIONS".* FROM "SCHEMA_MIGRATIONS"
   (2.7ms)  SELECT column_name AS name, data_type AS sql_type, data_default, nullable, virtual_column, hidden_column, data_type_owner AS sql_type_owner, DECODE(data_type, 'NUMBER', data_precision, 'FLOAT', data_precision, 'VARCHAR2', DECODE(char_used, 'C', char_length, data_length), 'RAW', DECODE(char_used, 'C', char_length, data_length), 'CHAR', DECODE(char_used, 'C', char_length, data_length), NULL) AS limit, DECODE(data_type, 'NUMBER', data_scale, NULL) AS scale FROM all_tab_cols WHERE owner = '-----' AND table_name = 'SCHEMA_MIGRATIONS' AND hidden_column = 'NO' ORDER BY column_id
  Primary Key (34.2ms)  SELECT cc.column_name FROM all_constraints c, all_cons_columns cc WHERE c.owner = '-----' AND c.table_name = 'SCHEMA_MIGRATIONS' AND c.constraint_type = 'P' AND cc.owner = c.owner AND cc.constraint_name = c.constraint_name

ArgumentError (wrong number of arguments (1 for 0)):
  actionpack (4.0.2) lib/abstract_controller/base.rb:89:in `initialize'
  actionpack (4.0.2) lib/abstract_controller/base.rb:89:in `new'
  actionpack (4.0.2) lib/abstract_controller/base.rb:89:in `action_methods'
  actionpack (4.0.2) lib/action_controller/metal/hide_actions.rb:36:in `action_methods'
  actionpack (4.0.2) lib/abstract_controller/url_for.rb:25:in `action_methods'
  actionpack (4.0.2) lib/abstract_controller/base.rb:179:in `action_method?'
  actionpack (4.0.2) lib/abstract_controller/base.rb:230:in `method_for_action'
  actionpack (4.0.2) lib/action_controller/metal/hide_actions.rb:17:in `method_for_action'
  actionpack (4.0.2) lib/action_controller/metal/implicit_render.rb:14:in `method_for_action'
  actionpack (4.0.2) lib/abstract_controller/base.rb:130:in `process'
  actionpack (4.0.2) lib/abstract_controller/rendering.rb:44:in `process'
  actionpack (4.0.2) lib/action_controller/metal.rb:195:in `dispatch'
  actionpack (4.0.2) lib/action_controller/metal/rack_delegation.rb:13:in `dispatch'
  actionpack (4.0.2) lib/action_controller/metal.rb:231:in `block in action'
  actionpack (4.0.2) lib/action_dispatch/routing/route_set.rb:80:in `call'
  actionpack (4.0.2) lib/action_dispatch/routing/route_set.rb:80:in `dispatch'
  actionpack (4.0.2) lib/action_dispatch/routing/route_set.rb:48:in `call'
  actionpack (4.0.2) lib/action_dispatch/journey/router.rb:71:in `block in call'
  actionpack (4.0.2) lib/action_dispatch/journey/router.rb:59:in `each'
  actionpack (4.0.2) lib/action_dispatch/journey/router.rb:59:in `call'
  actionpack (4.0.2) lib/action_dispatch/routing/route_set.rb:680:in `call'
  rack (1.5.2) lib/rack/etag.rb:23:in `call'
  rack (1.5.2) lib/rack/conditionalget.rb:25:in `call'
  rack (1.5.2) lib/rack/head.rb:11:in `call'
  actionpack (4.0.2) lib/action_dispatch/middleware/params_parser.rb:27:in `call'
  actionpack (4.0.2) lib/action_dispatch/middleware/flash.rb:241:in `call'
  rack (1.5.2) lib/rack/session/abstract/id.rb:225:in `context'.......
解决了


我不知道到底发生了什么,但解决方案是回到旧版本的RoR,感谢git branch和rvm,然后再次执行Bundle update和Bundle install。

为什么,哦,为什么开发人员在一个数据库上开发,在另一个数据库上部署,希望一切都能正常工作?您是否会使用windows/rubinius进行开发,并将其部署在运行freebsd/jruby的平台上,并期望它按原样工作?当然不是。数据库引擎也是如此。他们讲的方言非常不同,甚至在诸如
limit
autoincrement
之类的简单问题上也不能达成一致。如果部署在Linux/Oracle上,请使用Linux/Oracle进行开发。或者至少,在部署之前对其进行单元测试。这和你说的不完全一样:在工作中,我使用Linux和Oracle开发和部署。但在家里,我使用我的Mac和Postgres本地数据库,为什么?因为这很简单,Postgres是免费的。此外,使用多个系统来确定错误在哪里是很有用的。现在,例如,我有一个线索,错误在DB后面。你没有面对这个问题。我知道这个问题是由于ruby/rails和gems版本的错误混合造成的。有了这个解决方案,我意识到gems比我的代码还好,不好的地方可能是使用ruby 1.8.7,gems不是用ruby小于1.9的版本准备的,可能错误是在Rails的早期版本中创建开发数据库,并尝试通过迁移创建生产数据库,使用最新的Rails版本。