So, this is me attempting to create a reproducible test case for the
issue I have.
Aaron says:
"Or if you use assume_types you can just define the AS:
[RemoteClass(alias='Task')]
and leave out the class mapping completely in configuration."
So, this is my rubyamf_config.rb (I could be doing something dumb here
-- I have tried numerous combinations of these flags though):
require 'app/configuration'
module RubyAMF
module Configuration
ClassMappings.translate_case = true
ClassMappings.force_active_record_ids = true
ClassMappings.assume_types = true
ClassMappings.check_for_associations = true
ParameterMappings.always_add_to_params = true
ParameterMappings.scaffolding = true
end
end
I am attaching a standalone application (RamfTestApp.mxml) and the
supporting files. Note that I tried both
[RemoteClass(alias='com.pomodo.model.Task')]
and
[RemoteClass(alias='Task')]
with the same effect. (When I just used 'Task' I just used 'Project',
'Location', etc.; when I used the full package I used it everywhere.)
In both cases I get:
FAULT:
There was an error with your parameter mappings: {Anonymous modules
have no name to be referenced by}
The exception is inside Rails methods that are trying to form a name:
search for "Anonymous modules have no name to be referenced by" in the
Rails 1.99.0 (Rails 2.0 release candidate) sources and you'll see it.
My guess is the bug is that RubyAMF is providing something empty when
there is no module that the model classes are in.
Note: index works fine with both these configs. The problem is with
show. I'm currently sending this to Rails to do show:
private function doShow():void {
tasksRO.show.send({id:4});
}
Now, this **WORKS** when I use the manual, explicit ClassMappings
approach (assume_types = false). However, with the
ClassMappings.assume_types = true approach, it explodes.
I'm attaching the test files. You need to put them in the appropriate
structure to test.
Thanks,
Peter
This was the trace when I used annotations like
[RemoteClass(alias='Task')]
c:\peter\flexiblerails\code\iteration11\pomodo>ruby script\server
=> Booting WEBrick...
=> Rails application started on http://0.0.0.0:3000
=> Ctrl-C to shutdown server; call with --help for options
[2007-11-16 12:58:17] INFO WEBrick 1.3.1
[2007-11-16 12:58:17] INFO ruby 1.8.5 (2006-08-25) [i386-mswin32]
[2007-11-16 12:58:17] INFO WEBrick::HTTPServer#start: pid=3832 port=3000
127.0.0.1 - - [16/Nov/2007:12:58:25 Pacific Standard Time] "GET
/AC_OETags.js HTTP/1.1" 200 8068
http://localhost:3000/ -> /AC_OETags.js
127.0.0.1 - - [16/Nov/2007:12:58:25 Pacific Standard Time] "GET
/Pomodo.swf HTTP/1.1" 200 681289
http://localhost:3000/ -> /Pomodo.swf
127.0.0.1 - - [16/Nov/2007:12:58:46 Pacific Standard Time] "POST
/rubyamf/gateway HTTP/1.1" 200 311
file:///C:/peter/flexiblerails/code/iteration11/pomodo/public/RamfTestApp.swf
-> /rubyamf/gateway
127.0.0.1 - - [16/Nov/2007:12:58:47 Pacific Standard Time] "POST
/rubyamf/gateway HTTP/1.1" 200 311
file:///C:/peter/flexiblerails/code/iteration11/pomodo/public/RamfTestApp.swf
-> /rubyamf/gateway
127.0.0.1 - - [16/Nov/2007:12:58:48 Pacific Standard Time] "POST
/rubyamf/gateway HTTP/1.1" 200 311
file:///C:/peter/flexiblerails/code/iteration11/pomodo/public/RamfTestApp.swf
-> /rubyamf/gateway
There was an error with your parameter mappings: {Anonymous modules
have no name to be referenced by}
c:/peter/flexiblerails/code/iteration11/pomodo/vendor/plugins/rubyamf/app/actions.rb:142:in
`invoke'
c:/peter/flexiblerails/code/iteration11/pomodo/vendor/plugins/rubyamf/app/actions.rb:86:in
`run'
c:/peter/flexiblerails/code/iteration11/pomodo/vendor/plugins/rubyamf/app/filters.rb:44:in
`run'
c:/peter/flexiblerails/code/iteration11/pomodo/vendor/plugins/rubyamf/app/filters.rb:42:in
`each'
c:/peter/flexiblerails/code/iteration11/pomodo/vendor/plugins/rubyamf/app/filters.rb:42:in
`run'
c:/peter/flexiblerails/code/iteration11/pomodo/vendor/plugins/rubyamf/app/filters.rb:40:in
`upto'
c:/peter/flexiblerails/code/iteration11/pomodo/vendor/plugins/rubyamf/app/filters.rb:40:in
`run'
c:/peter/flexiblerails/code/iteration11/pomodo/vendor/plugins/rubyamf/app/filters.rb:11:in
`run'
c:/peter/flexiblerails/code/iteration11/pomodo/vendor/plugins/rubyamf/app/filters.rb:10:in
`each'
c:/peter/flexiblerails/code/iteration11/pomodo/vendor/plugins/rubyamf/app/filters.rb:10:in
`run'
c:/peter/flexiblerails/code/iteration11/pomodo/vendor/plugins/rubyamf/app/rails_gateway.rb:28:in
`service'
c:/peter/flexiblerails/code/iteration11/pomodo/app/controllers/rubyamf_controller.rb:16:in
`gateway'
c:/peter/flexiblerails/code/iteration11/pomodo/vendor/rails/actionpack/lib/action_controller/base.rb:1137:in
`send'
c:/peter/flexiblerails/code/iteration11/pomodo/vendor/rails/actionpack/lib/action_controller/base.rb:1137:in
`perform_action_without_filters'
c:/peter/flexiblerails/code/iteration11/pomodo/vendor/rails/actionpack/lib/action_controller/filters.rb:697:in
`call_filters'
c:/peter/flexiblerails/code/iteration11/pomodo/vendor/rails/actionpack/lib/action_controller/filters.rb:689:in
`perform_action_without_benchmark'
c:/peter/flexiblerails/code/iteration11/pomodo/vendor/rails/actionpack/lib/action_controller/benchmarking.rb:68:in
`perform_action_without_rescue'
c:/ruby/lib/ruby/1.8/benchmark.rb:293:in `measure'
c:/peter/flexiblerails/code/iteration11/pomodo/vendor/rails/actionpack/lib/action_controller/benchmarking.rb:68:in
`perform_action_without_rescue'
c:/peter/flexiblerails/code/iteration11/pomodo/vendor/rails/actionpack/lib/action_controller/rescue.rb:199:in
`perform_action_without_caching'
c:/peter/flexiblerails/code/iteration11/pomodo/vendor/rails/actionpack/lib/action_controller/caching.rb:669:in
`perform_action'
c:/peter/flexiblerails/code/iteration11/pomodo/vendor/rails/activerecord/lib/active_record/connection_adapters/abstract/query_cache.rb:33:in
`cache'
c:/peter/flexiblerails/code/iteration11/pomodo/vendor/rails/activerecord/lib/active_record/query_cache.rb:8:in
`cache'
c:/peter/flexiblerails/code/iteration11/pomodo/vendor/rails/actionpack/lib/action_controller/caching.rb:668:in
`perform_action'
c:/peter/flexiblerails/code/iteration11/pomodo/vendor/rails/actionpack/lib/action_controller/base.rb:513:in
`send'
c:/peter/flexiblerails/code/iteration11/pomodo/vendor/rails/actionpack/lib/action_controller/base.rb:513:in
`process_without_filters'
c:/peter/flexiblerails/code/iteration11/pomodo/vendor/rails/actionpack/lib/action_controller/filters.rb:685:in
`process_without_session_management_support'
c:/peter/flexiblerails/code/iteration11/pomodo/vendor/rails/actionpack/lib/action_controller/session_management.rb:123:in
`process'
c:/peter/flexiblerails/code/iteration11/pomodo/vendor/rails/actionpack/lib/action_controller/base.rb:377:in
`process'
c:/peter/flexiblerails/code/iteration11/pomodo/vendor/rails/actionpack/lib/action_controller/dispatcher.rb:171:in
`handle_request'
c:/peter/flexiblerails/code/iteration11/pomodo/vendor/rails/actionpack/lib/action_controller/dispatcher.rb:115:in
`dispatch'
c:/peter/flexiblerails/code/iteration11/pomodo/vendor/rails/actionpack/lib/action_controller/dispatcher.rb:126:in
`dispatch_cgi'
c:/peter/flexiblerails/code/iteration11/pomodo/vendor/rails/actionpack/lib/action_controller/dispatcher.rb:9:in
`dispatch'
c:/peter/flexiblerails/code/iteration11/pomodo/vendor/rails/railties/lib/webrick_server.rb:112:in
`handle_dispatch'
c:/peter/flexiblerails/code/iteration11/pomodo/vendor/rails/railties/lib/webrick_server.rb:78:in
`service'
c:/ruby/lib/ruby/1.8/webrick/httpserver.rb:104:in `service'
c:/ruby/lib/ruby/1.8/webrick/httpserver.rb:65:in `run'
c:/ruby/lib/ruby/1.8/webrick/server.rb:173:in `start_thread'
c:/ruby/lib/ruby/1.8/webrick/server.rb:162:in `start'
c:/ruby/lib/ruby/1.8/webrick/server.rb:162:in `start_thread'
c:/ruby/lib/ruby/1.8/webrick/server.rb:95:in `start'
c:/ruby/lib/ruby/1.8/webrick/server.rb:92:in `each'
c:/ruby/lib/ruby/1.8/webrick/server.rb:92:in `start'
c:/ruby/lib/ruby/1.8/webrick/server.rb:23:in `start'
c:/ruby/lib/ruby/1.8/webrick/server.rb:82:in `start'
c:/peter/flexiblerails/code/iteration11/pomodo/vendor/rails/railties/lib/webrick_server.rb:62:in
`dispatch'
c:/peter/flexiblerails/code/iteration11/pomodo/vendor/rails/railties/lib/commands/servers/webrick.rb:66
c:/ruby/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:27:in
`gem_original_require'
c:/ruby/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:27:in `require'
c:/peter/flexiblerails/code/iteration11/pomodo/vendor/rails/activesupport/lib/active_support/dependencies.rb:496:in
`require'
c:/peter/flexiblerails/code/iteration11/pomodo/vendor/rails/activesupport/lib/active_support/dependencies.rb:342:in
`new_constants_in'
c:/peter/flexiblerails/code/iteration11/pomodo/vendor/rails/activesupport/lib/active_support/dependencies.rb:496:in
`require'
c:/peter/flexiblerails/code/iteration11/pomodo/vendor/rails/railties/lib/commands/server.rb:39
c:/ruby/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:27:in
`gem_original_require'
c:/ruby/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:27:in `require'
script/server:3
127.0.0.1 - - [16/Nov/2007:12:58:52 Pacific Standard Time] "POST
/rubyamf/gateway HTTP/1.1" 200 5841
file:///C:/peter/flexiblerails/code/iteration11/pomodo/public/RamfTestApp.swf
-> /rubyamf/gateway
This was the trace when I used annotations like
[RemoteClass(alias='com.pomodo.model.Task')]
c:\peter\flexiblerails\code\iteration11\pomodo>ruby script\server
=> Booting WEBrick...
=> Rails application started on http://0.0.0.0:3000
=> Ctrl-C to shutdown server; call with --help for options
[2007-11-16 12:46:47] INFO WEBrick 1.3.1
[2007-11-16 12:46:47] INFO ruby 1.8.5 (2006-08-25) [i386-mswin32]
[2007-11-16 12:46:48] INFO WEBrick::HTTPServer#start: pid=1164 port=3000
127.0.0.1 - - [16/Nov/2007:12:50:45 Pacific Standard Time] "POST
/rubyamf/gateway HTTP/1.1" 200 311
file:///C:/peter/flexiblerails/code/iteration11/pomodo/public/RamfTestApp.swf
-> /rubyamf/gateway
127.0.0.1 - - [16/Nov/2007:12:50:46 Pacific Standard Time] "POST
/rubyamf/gateway HTTP/1.1" 200 311
file:///C:/peter/flexiblerails/code/iteration11/pomodo/public/RamfTestApp.swf
-> /rubyamf/gateway
127.0.0.1 - - [16/Nov/2007:12:52:12 Pacific Standard Time] "POST
/rubyamf/gateway HTTP/1.1" 200 311
file:///C:/peter/flexiblerails/code/iteration11/pomodo/public/RamfTestApp.swf
-> /rubyamf/gateway
127.0.0.1 - - [16/Nov/2007:12:52:12 Pacific Standard Time] "POST
/rubyamf/gateway HTTP/1.1" 200 311
file:///C:/peter/flexiblerails/code/iteration11/pomodo/public/RamfTestApp.swf
-> /rubyamf/gateway
127.0.0.1 - - [16/Nov/2007:12:52:14 Pacific Standard Time] "POST
/rubyamf/gateway HTTP/1.1" 200 311
file:///C:/peter/flexiblerails/code/iteration11/pomodo/public/RamfTestApp.swf
-> /rubyamf/gateway
There was an error with your parameter mappings: {Anonymous modules
have no name to be referenced by}
c:/peter/flexiblerails/code/iteration11/pomodo/vendor/plugins/rubyamf/app/actions.rb:142:in
`invoke'
c:/peter/flexiblerails/code/iteration11/pomodo/vendor/plugins/rubyamf/app/actions.rb:86:in
`run'
c:/peter/flexiblerails/code/iteration11/pomodo/vendor/plugins/rubyamf/app/filters.rb:44:in
`run'
c:/peter/flexiblerails/code/iteration11/pomodo/vendor/plugins/rubyamf/app/filters.rb:42:in
`each'
c:/peter/flexiblerails/code/iteration11/pomodo/vendor/plugins/rubyamf/app/filters.rb:42:in
`run'
c:/peter/flexiblerails/code/iteration11/pomodo/vendor/plugins/rubyamf/app/filters.rb:40:in
`upto'
c:/peter/flexiblerails/code/iteration11/pomodo/vendor/plugins/rubyamf/app/filters.rb:40:in
`run'
c:/peter/flexiblerails/code/iteration11/pomodo/vendor/plugins/rubyamf/app/filters.rb:11:in
`run'
c:/peter/flexiblerails/code/iteration11/pomodo/vendor/plugins/rubyamf/app/filters.rb:10:in
`each'
c:/peter/flexiblerails/code/iteration11/pomodo/vendor/plugins/rubyamf/app/filters.rb:10:in
`run'
c:/peter/flexiblerails/code/iteration11/pomodo/vendor/plugins/rubyamf/app/rails_gateway.rb:28:in
`service'
c:/peter/flexiblerails/code/iteration11/pomodo/app/controllers/rubyamf_controller.rb:16:in
`gateway'
c:/peter/flexiblerails/code/iteration11/pomodo/vendor/rails/actionpack/lib/action_controller/base.rb:1137:in
`send'
c:/peter/flexiblerails/code/iteration11/pomodo/vendor/rails/actionpack/lib/action_controller/base.rb:1137:in
`perform_action_without_filters'
c:/peter/flexiblerails/code/iteration11/pomodo/vendor/rails/actionpack/lib/action_controller/filters.rb:697:in
`call_filters'
c:/peter/flexiblerails/code/iteration11/pomodo/vendor/rails/actionpack/lib/action_controller/filters.rb:689:in
`perform_action_without_benchmark'
c:/peter/flexiblerails/code/iteration11/pomodo/vendor/rails/actionpack/lib/action_controller/benchmarking.rb:68:in
`perform_action_without_rescue'
c:/ruby/lib/ruby/1.8/benchmark.rb:293:in `measure'
c:/peter/flexiblerails/code/iteration11/pomodo/vendor/rails/actionpack/lib/action_controller/benchmarking.rb:68:in
`perform_action_without_rescue'
c:/peter/flexiblerails/code/iteration11/pomodo/vendor/rails/actionpack/lib/action_controller/rescue.rb:199:in
`perform_action_without_caching'
c:/peter/flexiblerails/code/iteration11/pomodo/vendor/rails/actionpack/lib/action_controller/caching.rb:669:in
`perform_action'
c:/peter/flexiblerails/code/iteration11/pomodo/vendor/rails/activerecord/lib/active_record/connection_adapters/abstract/query_cache.rb:33:in
`cache'
c:/peter/flexiblerails/code/iteration11/pomodo/vendor/rails/activerecord/lib/active_record/query_cache.rb:8:in
`cache'
c:/peter/flexiblerails/code/iteration11/pomodo/vendor/rails/actionpack/lib/action_controller/caching.rb:668:in
`perform_action'
c:/peter/flexiblerails/code/iteration11/pomodo/vendor/rails/actionpack/lib/action_controller/base.rb:513:in
`send'
c:/peter/flexiblerails/code/iteration11/pomodo/vendor/rails/actionpack/lib/action_controller/base.rb:513:in
`process_without_filters'
c:/peter/flexiblerails/code/iteration11/pomodo/vendor/rails/actionpack/lib/action_controller/filters.rb:685:in
`process_without_session_management_support'
c:/peter/flexiblerails/code/iteration11/pomodo/vendor/rails/actionpack/lib/action_controller/session_management.rb:123:in
`process'
c:/peter/flexiblerails/code/iteration11/pomodo/vendor/rails/actionpack/lib/action_controller/base.rb:377:in
`process'
c:/peter/flexiblerails/code/iteration11/pomodo/vendor/rails/actionpack/lib/action_controller/dispatcher.rb:171:in
`handle_request'
c:/peter/flexiblerails/code/iteration11/pomodo/vendor/rails/actionpack/lib/action_controller/dispatcher.rb:115:in
`dispatch'
c:/peter/flexiblerails/code/iteration11/pomodo/vendor/rails/actionpack/lib/action_controller/dispatcher.rb:126:in
`dispatch_cgi'
c:/peter/flexiblerails/code/iteration11/pomodo/vendor/rails/actionpack/lib/action_controller/dispatcher.rb:9:in
`dispatch'
c:/peter/flexiblerails/code/iteration11/pomodo/vendor/rails/railties/lib/webrick_server.rb:112:in
`handle_dispatch'
c:/peter/flexiblerails/code/iteration11/pomodo/vendor/rails/railties/lib/webrick_server.rb:78:in
`service'
c:/ruby/lib/ruby/1.8/webrick/httpserver.rb:104:in `service'
c:/ruby/lib/ruby/1.8/webrick/httpserver.rb:65:in `run'
c:/ruby/lib/ruby/1.8/webrick/server.rb:173:in `start_thread'
c:/ruby/lib/ruby/1.8/webrick/server.rb:162:in `start'
c:/ruby/lib/ruby/1.8/webrick/server.rb:162:in `start_thread'
c:/ruby/lib/ruby/1.8/webrick/server.rb:95:in `start'
c:/ruby/lib/ruby/1.8/webrick/server.rb:92:in `each'
c:/ruby/lib/ruby/1.8/webrick/server.rb:92:in `start'
c:/ruby/lib/ruby/1.8/webrick/server.rb:23:in `start'
c:/ruby/lib/ruby/1.8/webrick/server.rb:82:in `start'
c:/peter/flexiblerails/code/iteration11/pomodo/vendor/rails/railties/lib/webrick_server.rb:62:in
`dispatch'
c:/peter/flexiblerails/code/iteration11/pomodo/vendor/rails/railties/lib/commands/servers/webrick.rb:66
c:/ruby/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:27:in
`gem_original_require'
c:/ruby/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:27:in `require'
c:/peter/flexiblerails/code/iteration11/pomodo/vendor/rails/activesupport/lib/active_support/dependencies.rb:496:in
`require'
c:/peter/flexiblerails/code/iteration11/pomodo/vendor/rails/activesupport/lib/active_support/dependencies.rb:342:in
`new_constants_in'
c:/peter/flexiblerails/code/iteration11/pomodo/vendor/rails/activesupport/lib/active_support/dependencies.rb:496:in
`require'
c:/peter/flexiblerails/code/iteration11/pomodo/vendor/rails/railties/lib/commands/server.rb:39
c:/ruby/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:27:in
`gem_original_require'
c:/ruby/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:27:in `require'
script/server:3
127.0.0.1 - - [16/Nov/2007:12:52:19 Pacific Standard Time] "POST
/rubyamf/gateway HTTP/1.1" 200 5841
file:///C:/peter/flexiblerails/code/iteration11/pomodo/public/RamfTestApp.swf
-> /rubyamf/gateway
Cheers,
Peter