あなたはActiveRecordを使用すると、二つの方法行くことができます使用したいと仮定すると:
で、このようなモデルを使用する方法の例を私の答えを参照してくださいclass_nameパラメータは、使用するモデルの名前です。これはSinatraアプリからのものですが、Railsに合わせることができると確信しています。これは、結果としてJSONを期待する複数のモデルを使用するExtJsのjavascriptアプリケーションのバックエンドです。
# controller
%w(create read update destroy).each do |action|
[:get, :post].each do |method|
send(method, "/path/#{action}") do
response.headers['Access-Control-Allow-Origin'] = '*'
content_type :json
if params[:store]
store = Object.const_get(params[:store])
else
store = Signal
end
resp = send(action, store, params)
jsonp(resp)
end
end
end
# in helper.rb
def read (class_name, params)
params = params.symbolize_keys
default = {store: 'Signaal', limit: 10, sort: 'id', order: 'ASC', start: 0, user: '0'}
params = default.merge params
generic_data_getter(class_name, params, params[:start], params[:limit], params[:sort], params[:dir])
end
def generic_data_getter (class_name, params, start=0, limit=10, sort='id', dir='ASC')
selection = build_selection(class_name, params)
data = class_name.where(selection).offset(start).limit(limit).order("#{sort} #{dir}")
{:success => true, :totalCount => data.except(:offset, :limit, :order).count, :result => data.as_json}
end
単純な定義済みの検索やスピードの場合は、接続が必要な場合に接続したり切断することができます。ここでは、Oracleの例を示します。
require 'oci8'
CONN = OCI8.new('scheme','password','dbserver')
sql = '....'
CONN.exec(sql) {|record|puts record.join(',')}
CONN.logoff
コード注入のような悪意のある使用に注意してください。
あなたは、ユーザーが1つ以上のデータベースに対して行う接続数を指示することができるようにしたいですか?また、並列性とは並行性を意味しますか? – bkunzi01
あなたがしようとしていることの詳細を説明できますか? – gates
私は確かにあなたが悪意のある、または無知な、ユーザーがあなたを落とす可能性がある限界に入れて願っています。 –