2017-02-10 11 views
1

my APIコントローラが受け取るパラメータの1つに大きなキー名があります。文字列が存在する場合は、永続化するモデルに送る前にそれを文字列から整数に変換する必要があります。あなたが見ることができるように、コード行が80以上の文字で、大きくなり、私はRubyのベストプラクティスに固執したいRuby/Railsでの条件付き変数操作のショートカット

params[:really_big_key_name] = params[:really_big_key_name].to_i unless params[:really_big_key_name].blank? 

または

params[:really_big_key_name] = params[:really_big_key_name].present? ? params[:really_big_key_name].to_i : nil 

:通常私は、次のいずれかを実行します。もっと短くてRubyのやり方も同じですか?たぶん "現場"の方法。配列のようなものは、bangメソッドで行います。残念ながら、to_i!は文字列には存在しません。これは私が必要とするものです。

+0

が、私はそれがnumber' 'にSTRING''からタイプを変更しますので、場所メソッド内に存在しませんでしたでしょうね。 –

答えて

0

あなたはこれを行うことができます:

params[:really_big_key_name] = params[:really_big_key_name].try(:to_i) 
+0

'NoMethodError:未定義メソッド 'try'をnilにする:NilClass' –

+0

@BradWerthあなたはRailsまたは純粋なRubyを使用していますか? ? 'try'は2.3.2以降のRailsの一部です。 – jeffdill2

+1

あなたは正しいです - 私はRailsを使用していませんでした。 FWIW、この答えの純粋なルビーバージョンは 'params [:really_big_key_name] = params [:really_big_key_name]&。to_i'です。 –

関連する問題