2012-04-12 73 views
2

我想用一個純Ruby數據庫(kirbybase​​)與西納特拉在一起,在Ruby中,我們將有這樣的事情,以顯示一個記錄:西納特拉與純Ruby數據庫

require 'kirbybase' 
db = KirbyBase.new 
cars_tbl= db.get_table(:cars) 
ferrari = cars_tbl.select { |r| r.recno == 9 } 
puts ferrari 

或所有記錄

results = cars_tbl.select(:name,:race,:color,:recno).sort(+:color) 

什麼是將這與Sinatra集成而不混淆「rubysh」kirbybase語法的最佳方法?

回答

2

要拍攝葉約sinatra-redis的書,你可以做這樣的事情:

require 'sinatra' 
require 'kirbybase' 

helpers do 
    # Create a helper to allow easier access to settings.kirby 
    # Name it whatever you want 
    def kirby 
    settings.kirby 
    end 
end 

configure do 
    # Initialise kirby 
    set :kirby, KirbyBase.new 
end 

get '/' do 
    cars_tbl = kirby.get_table(:cars) 
    ferrari = cars_tbl.select { |r| r.recno == 9 } 
    "Car is #{ferrari}" 
end 
+0

感謝這一點,但它返回一個錯誤服務器:網站devnull $紅寶石sinatrakb.rb /庫/Ruby/Gems/1.8/gems/sinatra-1.3.2/lib/sinatra/base.rb:1197:in'define_method':試圖從/ Library/Ruby/Gems創建沒有塊的Proc對象(ArgumentError) \t /1.8/gems/sinatra-1.3.2/lib/sinatra/base.rb:1197:in'generate_method' \t from /Library/Ruby/Gems/1.8/gems/sinatra-1.3.2/lib/sinatra/base .RB: 1206:在'編譯!'中 – devnull 2012-04-12 20:17:32

+0

它的作品,但在你的最後一點,它應該得到'/'做:)讚賞你的善意幫助!哇,這很容易:)得愛Sinatra :)有什麼簡單的方法來將kirbybase嵌入到gem中,默認包括sinatra和db引擎? – devnull 2012-04-12 20:27:59

+0

糟糕!這就是你沒有測試你的代碼,我會編輯它。 我不太確定你的意思,我很害怕。包括Sinatra和數據庫引擎到哪裏? – canton7 2012-04-13 09:35:06