1
Rails以外のパラメータの検証を試しています。変数名へのアクセス
def create_statement(action, ...)
valid_one_of(action, ['ADD', 'MOVE', 'DELETE'])
...
end
検証メソッド:
def valid_one_of(input, valid_values)
return true if valid_values.include?(input)
raise "#{input} was not a valid value for #{input.var_name}"
end
サンプルコール:
create_statement('Bob')
ので、出力は次のようになります。私はinput.var_nameを得るのですか
Bob was not valid value for action
問題?
は私の回避策のために私は
valid_one_of(action, ['ADD', 'MOVE', 'DELETE'], 'action')
(と私の出力のための第三PARMを使用)が、いないようです、これは感じて少し冗長を渡すことができます。
変数名にアクセスできない場合は、この回避策よりもDRYコーディングスタイルがありますか?
私は、呼び出し元(この場合、「アクション」は「は、入力中の名前を望みます') 私はもっと軽い解決策を選び、私の各パラメータのクラスを作成したいと思います。この場合、6つのparmsを検証したいと思います。新しいクラスを作成すると、コードの主な意図から気をそらすと思います。 - アイデアありがとう – Nathan