
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への紐付けについ...
-
100万件越えCSVから条件を満た...
-
一週間用のカレンダー
-
Ruby require ライブラリー
-
ruby OpenURI::Meta
-
ruby while式
-
ruby loopメソッド 変数(再喝)
-
ruby 配列
-
ruby loopメソッド 変数
-
ruby クラス・オブジェクト・イ...
-
ルビー言語 ライブラリー 追記
-
ruby raise句
-
ruby begin句
-
ruby ensure句
-
ルビー言語 ライブラリー(再々...
-
ルビー言語 csvファイル 続き(...
-
ルビー言語 csvファイル 続き
-
ルビー言語 ライブラリー
-
ルビー言語 csvファイル part2
-
ルビー言語 ライブラリー
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ぱいソン
-
Rubyにインクリメンタル演算子...
-
再帰に関する質問です。
-
ハッシュ(単語数を数える) た...
-
【BrowseForFolderでデスクトッ...
-
railsチュートリアル5章の演習
-
バッファの上限なしでreadparti...
-
rubyでのproc
-
ruby 毎回同じ様なreplace文を...
-
Ruby バブルソート
-
【引数と戻り値の違い】 はじめ...
-
リダイレクトでPOSTリクエスト...
-
レコードセットオブジェクトの...
-
PHP DB トランザクション
-
Ruby Fileクラスについて
-
【Ruby】 文法的に何が悪いの...
-
Unixのwcコマンドの簡易版ですが
-
RubyのProcについて
-
「arg」は何の略?
-
What class are you in? には何...
おすすめ情報