質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Ruby on Rails 3

Ruby on Rails3はRubyによって書かれたオープンソースのウェブフレームワークです。Ruby on Railsは「設定より規約」の原則に従っており、効率的に作業を行うために再開発を行う必要をなくしてくれます。

RubyGems

RubyGemsはRubyによるプログラミングのためのパッケージマネジメントツールです。ユーザはこれを使用することで、Rubyライブラリのダウンロードやアップデートや、依存関係の自動解決が可能になります。

Ruby on Rails 4

Ruby on Rails4はRubyによって書かれたオープンソースのウェブフレームワークです。 Ruby on Railsは「設定より規約」の原則に従っており、効率的に作業を行うために再開発を行う必要をなくしてくれます。

Q&A

解決済

1回答

498閲覧

ruby mysql2でのexecuteに必要に応じて追加したい。

garchomp

総合スコア128

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Ruby on Rails 3

Ruby on Rails3はRubyによって書かれたオープンソースのウェブフレームワークです。Ruby on Railsは「設定より規約」の原則に従っており、効率的に作業を行うために再開発を行う必要をなくしてくれます。

RubyGems

RubyGemsはRubyによるプログラミングのためのパッケージマネジメントツールです。ユーザはこれを使用することで、Rubyライブラリのダウンロードやアップデートや、依存関係の自動解決が可能になります。

Ruby on Rails 4

Ruby on Rails4はRubyによって書かれたオープンソースのウェブフレームワークです。 Ruby on Railsは「設定より規約」の原則に従っており、効率的に作業を行うために再開発を行う必要をなくしてくれます。

0グッド

0クリップ

投稿2017/07/21 06:05

質問の詳細です。

()の中に、それぞれの文字列を、条件分岐によって変化し、,で区切って入れられるように実装したいです。

例えば

ruby

1 2huga="huga" 3piyo="piyo" 4total="" 5if true 6 total+= "hoge " 7end 8if true 9 total+="#{huga} " 10end 11if true 12 total+="#{piyo}" 13end 14totals="" 15p total.split(" ") 16 17#例えばここにtotal.splitの値を入れるとき 18x.execute() 19#これで三つならば("hoge","huga","piyo")として、 20#一つ目以外のものだったら("huga","piyo")という風にしたい。

上記のような例があったとき、入れるの形のままexecuteに入れたら当然エラーになります。

とはいっても、文字列のカンマでは区切ることができません。
区切りのカンマを入れる特殊文字みたいなものはあるのでしょうか?

または、それ以外の方法で解決策はあるのでしょうか?

いろいろ悩んでみましたが、どうしても解決できません。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

この場合、可変長引数というものを利用することができます。

おそらくPrepared statementsを利用したexecuteのことだと思われますが、このexecuteの引数として自由な要素数の配列を渡すことができるというものです。

可変長引数として指定するために、引数に指定する配列名の頭に*をつける必要があります。

つまり、例えば引数をhugaとpiyoだけにしたいならば

ruby

1 total = ['huga','piyo'] 2 x.execute(*total)

と記述することができますし、hugaとpiyoとhogeにしたいならば

ruby

1 total = ['huga','piyo','hoge'] 2 x.execute(*total)

とすることで実質的な引数の個数を制御することができます。

この概念を利用し、「条件によって配列の要素を追加していく分岐」を仕込めば望んだ処理ができるはずです。

投稿2017/07/26 07:48

Seiga

総合スコア41

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

garchomp

2017/07/27 06:15

回答ありがとうございます!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問