我的环境:
CentOS 5
ruby 1.8.6 (2008-08-11 patchlevel 287) [x86_64-linux]
Ruby Enterprise Edition 20090610
passneger or webrick
我使用这个宝石列表。
*** LOCAL GEMS ***
actionmailer (2.3.2, 2.2.2)
actionpack (2.3.2, 2.2.2)
activerecord (2.3.2, 2.2.2)
activeresource (2.3.2, 2.2.2)
activesupport (2.3.2, 2.2.2)
fastthread (1.0.7)
haml (2.2.13)
mysql (2.7)
passenger (2.2.2)
rack (1.0.0)
rails (2.3.2, 2.2.2)
rake (0.8.7)
rmagick (2.9.2)
sqlite3-ruby (1.2.4)
will_paginate (2.2.2)
这是错误消息。我不知道怎么解决它。请帮帮我。
当我使用webrick时:
Processing DashboardController#index (for 114.204.152.246 at 2009-11-14 10:52:57) [GET]
ArgumentError (Cannot yield from a Proc type filter. The Proc must take two arguments and execute #call on the second argument.):
haml (2.2.5) [v] rails/./lib/sass/plugin/rails.rb:19:in `process'
/opt/ruby-enterprise-1.8.6-20090610/lib/ruby/1.8/webrick/httpserver.rb:104:in `service'
/opt/ruby-enterprise-1.8.6-20090610/lib/ruby/1.8/webrick/httpserver.rb:65:in `run'
/opt/ruby-enterprise-1.8.6-20090610/lib/ruby/1.8/webrick/server.rb:173:in `start_thread'
/opt/ruby-enterprise-1.8.6-20090610/lib/ruby/1.8/webrick/server.rb:162:in `start'
/opt/ruby-enterprise-1.8.6-20090610/lib/ruby/1.8/webrick/server.rb:162:in `start_thread'
/opt/ruby-enterprise-1.8.6-20090610/lib/ruby/1.8/webrick/server.rb:95:in `start'
/opt/ruby-enterprise-1.8.6-20090610/lib/ruby/1.8/webrick/server.rb:92:in `each'
/opt/ruby-enterprise-1.8.6-20090610/lib/ruby/1.8/webrick/server.rb:92:in `start'
/opt/ruby-enterprise-1.8.6-20090610/lib/ruby/1.8/webrick/server.rb:23:in `start'
/opt/ruby-enterprise-1.8.6-20090610/lib/ruby/1.8/webrick/server.rb:82:in `start'
Rendering /var/rails/powerdns-on-rails/public/500.html (500 Internal Server Error)
当我使用乘客时:
Processing DashboardController#index (for 114.204.152.246 at 2009-11-14 10:22:50) [GET]
ArgumentError (Cannot yield from a Proc type filter. The Proc must take two arguments and execute #call on the second argument.):
haml (2.2.5) [v] rails/./lib/sass/plugin/rails.rb:19:in `process'
passenger (2.2.2) lib/phusion_passenger/rack/request_handler.rb:81:in `process_request'
passenger (2.2.2) lib/phusion_passenger/abstract_request_handler.rb:203:in `main_loop'
passenger (2.2.2) lib/phusion_passenger/railz/application_spawner.rb:340:in `start_request_handler'
passenger (2.2.2) lib/phusion_passenger/railz/application_spawner.rb:298:in `handle_spawn_application'
passenger (2.2.2) lib/phusion_passenger/utils.rb:181:in `safe_fork'
passenger (2.2.2) lib/phusion_passenger/railz/application_spawner.rb:296:in `handle_spawn_application'
passenger (2.2.2) lib/phusion_passenger/abstract_server.rb:337:in `__send__'
passenger (2.2.2) lib/phusion_passenger/abstract_server.rb:337:in `main_loop'
passenger (2.2.2) lib/phusion_passenger/abstract_server.rb:187:in `start_synchronously'
passenger (2.2.2) lib/phusion_passenger/abstract_server.rb:154:in `start'
passenger (2.2.2) lib/phusion_passenger/railz/application_spawner.rb:192:in `start'
passenger (2.2.2) lib/phusion_passenger/spawn_manager.rb:257:in `spawn_rails_application'
passenger (2.2.2) lib/phusion_passenger/abstract_server_collection.rb:126:in `lookup_or_add'
passenger (2.2.2) lib/phusion_passenger/spawn_manager.rb:251:in `spawn_rails_application'
passenger (2.2.2) lib/phusion_passenger/abstract_server_collection.rb:80:in `synchronize'
passenger (2.2.2) lib/phusion_passenger/abstract_server_collection.rb:79:in `synchronize'
passenger (2.2.2) lib/phusion_passenger/spawn_manager.rb:250:in `spawn_rails_application'
passenger (2.2.2) lib/phusion_passenger/spawn_manager.rb:153:in `spawn_application'
passenger (2.2.2) lib/phusion_passenger/spawn_manager.rb:282:in `handle_spawn_application'
passenger (2.2.2) lib/phusion_passenger/abstract_server.rb:337:in `__send__'
passenger (2.2.2) lib/phusion_passenger/abstract_server.rb:337:in `main_loop'
passenger (2.2.2) lib/phusion_passenger/abstract_server.rb:187:in `start_synchronously'
Rendering /var/rails/powerdns-on-rails/public/500.html (500 Internal Server Error)
答案 0 :(得分:1)
我有同样的问题,但我的红宝石已经是1.8.7了。 好的,请查看这篇文章http://citizen428.net/archives/846, 我的解决方案是
after_save :callback
define_method :callback do
# do something
end
更改为
after_save :callback
def callback do
# do something
end
答案 1 :(得分:0)
我也被困在这上面,虽然我无法解释这个问题,但我可以告诉你升级到REE 1.8.7为我修好了。我猜这是ruby 1.8.6的一些问题,这是由rails补丁公开的,但这只是猜测。
顺便说一下,如果你想看到导致“无法从proc产生”错误的rails提交,请看看http://dev.rubyonrails.org/changeset/5163
希望有所帮助。