
db = SQLite3::Database.new('hoge.db')
で、
db.execute('replace into table01 (a, b, c, d, e, f, g) values(?, ?, ?, ?, ?, ?, ?)',va, vb, vc, vd, ve, vf, vg);
とかって書いてるのですが、
これを、
def replace(table,k,v)
db.execute('replace into ' + table + '(' + k.join(',') + ') values('+ k.collect {'?'}'.join(’,’) +')' , ここどうかいたら??)
end
みたいな事を考えたのですが、vって配列でもらった値をばらばらにdb.executeのパラメータに渡したいのですが、
できませんでして、
replace('table',%w(a, b, c, d, e, f, g),[va, vb, vc, vd, ve, vf, vg])
みたいに使いたいです。
引数が可変のパラメータをそのまま、つぎの関数に渡すみたいな。
なんか、ラクする方法ないですか?
ご教授の程、宜しくお願いいたします。
No.1ベストアンサー
- 回答日時:
そのまま、可変長引数として取り扱えますよ。
http://doc.ruby-lang.org/ja/1.9.3/doc/spec=2fdef …
受ける側のメソッド内で*を外すと、Array扱いになります。
また、Arrayやらといったオブジェクトに*を付けてやると、他のメソッドへバラけたパラメータとして渡すことができます。
http://ideone.com/jbWZX
記載された例で行くと、
(動作チェックはしていません。「v」の扱い方についてだけです)
# このように使いたいなら
replace('table',%w(a, b, c, d, e, f, g),[va, vb, vc, vd, ve, vf, vg])
# こうします。
def replace(table, k, v)
db.execute('replace into ' + table + '(' + k.join(',') + ') values('+ k.collect {'?'}'.join(’,’) +')' , *v)
end
# このように使いたいなら
replace('table',%w(a, b, c, d, e, f, g), va, vb, vc, vd, ve, vf, vg)
# こうします。
def replace(table, k, *v)
db.execute('replace into ' + table + '(' + k.join(',') + ') values('+ k.collect {'?'}'.join(’,’) +')' , *v)
end
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
CSSのhtmlへの紐付けについ...
-
(再質問)エクセルのマクロボ...
-
ビーリアルのユーザー名を変え...
-
1、Rstudioで回帰直線を求める...
-
パソコンのスクリーンセーバー...
-
Ruby on railsをrails sで立ち...
-
Accessで文字列のバイト数読み込み
-
Ruby require ライブラリー
-
VBScriptでExcel(2019)上のデー...
-
ruby OpenURI::Meta
-
ruby while式
-
ruby loopメソッド 変数(再喝)
-
ruby 配列
-
ruby loopメソッド 変数
-
ruby クラス・オブジェクト・イ...
-
ルビー言語 ライブラリー 追記
-
ruby raise句
-
ruby begin句
-
ruby ensure句
-
ルビー言語 ライブラリー(再々...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Access2000にExcel2000のデータ...
-
railsチュートリアル5章の演習
-
Ruby 同じ名前のメソッド
-
timesの使いどころ
-
Rubyのクラス
-
CloseとQuitについて
-
ハッシュ(単語数を数える) た...
-
再帰に関する質問です。
-
rubyでのproc
-
ブロックつきメソッドやyield文...
-
「arg」は何の略?
-
get() と find() の違いについて
-
エラー「メソッドまたはデータ...
-
教えてください。vb5.0
-
エクセルVBA オートフィルタで...
-
実行時エラー450:引数の数が一...
-
クラス名やモジュール名の競合...
-
VBAで型が一致しないエラー(バ...
-
HSTLやSSTL等のI/Oピン
-
What class are you in? には何...
おすすめ情報