rubyamf裡的services目錄用了放置使用者自定義rb檔案的。services目錄下的rubyamf/helpers/active_record_connector.rb檔案是用來調用active record的。如果使用者需要連接配接資料庫,那麼他可以在自定義類裡定義如下代碼: require RUBYAMF_SERVICES + ' rubyamf/helpers/active_record_connector'
class MyService
include ActiveRecordConnector
def before_filter
ar_connect(RUBYAMF_SERVICES + ' some/paackage/my.yaml','myconnectionnode')
end
def say_something(something)
something.to_s
end
def get_product
product = Product.find(:all)
end
end
class Product < ActiveRecord::Base
end 1.必須存在services/some/package/my.yaml的資料庫配置檔案 2.相應的資料庫中必須存在products表 3.從上面的代碼可以看出services目錄下的MyService類,其實是繼承了ActionController類,展現了ruby動态語言的靈活性。 然後在rubyamf目錄下運作dos指令:ruby server/start (ruby server/start -h可以檢視start參數清單) 在flex用戶端可以用如下代碼來調用say_something和get_product
gateway.call( " tutorials.HelloWorld.get_product " , new Responder(onResult, onFault));
gateway.call( " tutorials.HelloWorld.say_something " , new Responder(onResult, onFault), " Hello Jiorry " ); 關于flex的具體代碼,可以參考amfnet裡的内容。 在mongrel_servlet.rb裡可以看出h.register("/gateway.rb", RUBYAMF::MongrelServlet.new),mongrel隻需注冊一個servlet就可以攔截請求。