Friends-

	I am trying to make a drb server publish an ActiveRecord model so it  
can be used by remote clients. It looks like I am getting close but  
no cigar. Can some kind soul enlighten me as to how to make this  
work? It seems like it is communicating with the remote AR model. And  
I am able to create records and find records. But I am unable to  
display the contents of the records on the client side. It seems like  
drb is not unmarshaling them correctly. Do I need to use DRbUndumped  
or something similar? Any help is greatly appreciated!

	Here is my code and irb session:
# server.rb

#!/usr/local/bin/ruby
require 'rubygems'
require 'drb/drb'
require_gem 'activerecord'

ActiveRecord::Base.establish_connection(
     :adapter  => "mysql",
     :username => "root",
     :host     => "localhost",
     :password => "reversal",
     :database => "switchboard_development"
)

class RemoteRecord < ActiveRecord::Base
end

DRb.start_service("druby://:3500", RemoteRecord)
puts DRb.uri
DRb.thread.join
--------------------------------------
And my irb session trying to access the remote model.

ezra:~ ez$ irb
irb(main):001:0> require 'rubygems'
=> true
irb(main):002:0> require 'drb/drb'
=> true
irb(main):003:0> require_gem 'activerecord'
=> true
irb(main):005:0* DRb.start_service
=> #<DRb::DRbServer:0x137d3b0 @uri="druby://ezra.local:61668",  
@idconv=#<DRb::DRbIdConv:0x410d88>, @front=nil, @config= 
{:idconv=>#<DRb::DRbIdConv: 
0x410d88>, :argc_limit=>256, :verbose=>false, :tcp_acl=>nil, :load_limit 
=>26214400}, @thread=#<Thread:0x137d324 sleep>, @grp=#<ThreadGroup: 
0x137d374>, @protocol=#<DRb::DRbTCPSocket:0x137d02c @uri="druby:// 
ezra.local:61668", @acl=nil, @config={:idconv=>#<DRb::DRbIdConv: 
0x410d88>, :argc_limit=>256, :verbose=>false, :tcp_acl=>nil, :load_limit 
=>26214400}, @msg=#<DRb::DRbMessage:0x137d004 @argc_limit=256,  
@load_limit=26214400>, @socket=#<TCPServer:0x137d0a4>>>

irb(main):006:0> test = DRbObject.new(nil, 'druby://ezra.local:3500')
=> #<DRb::DRbObject:0x1379990 @ref=nil, @uri="druby://ezra.local:3500">

irb(main):009:0> test.create(:title => 'Foo', :desc => 'Bar')
=> #<DRb::DRbUnknown:0x13727f8 @buf="\004\010o:\021RemoteRecord\010: 
\020@new_recordF:\f@errorso:\031ActiveRecord::Errors\a;\a{\000: 
\n@base@\000:\020@attributes{\010\"\ntitle\"\010Foo\"\aidi\010\"\tdesc 
\"\010Bar", @name="RemoteRecord">

irb(main):011:0> a = test.find :first
=> #<DRb::DRbUnknown:0x136dce4 @buf="\004\010o:\021RemoteRecord\006: 
\020@attributes{\010\"\ntitle\"\010foo\"\aid\"\0061\"\tdesc 
\"\010bar", @name="RemoteRecord">

irb(main):012:0> p a
#<DRb::DRbUnknown:0x136dce4 @buf="\004\010o:\021RemoteRecord\006: 
\020@attributes{\010\"\ntitle\"\010foo\"\aid\"\0061\"\tdesc 
\"\010bar", @name="RemoteRecord">
=> nil

irb(main):013:0> a.title
NoMethodError: undefined method `title' for #<DRb::DRbUnknown:0x136dce4>
         from (irb):13


So you can see it is almost working! title and desc are columns in  
the database table. The records do get created fine in the db and it  
seems to get the right records when I run a find on the model. I just  
can't figure out how to use the found object like a normal active  
record. I mean I need to be able to display the attributes of the  
record after I do a find and thats the part that is not working for me.

Thoughts? Clues? Derision?

Thanks-
-Ezra