私はというインスタンス変数を持っています
@filtered_ratings = params[:ratings].keys
ただし、params[:ratings]
がnilで#keys
呼び出された場合は、エラーが発生します。@filtered_ratingsがnilの場合、@ filtered_ratingsを空の配列(またはハッシュ)に設定する必要があります。あまり多くのコードなしでこれを行う簡単な方法はありますか?ありがとう!
私はというインスタンス変数を持っています
@filtered_ratings = params[:ratings].keys
ただし、params[:ratings]
がnilで#keys
呼び出された場合は、エラーが発生します。@filtered_ratingsがnilの場合、@ filtered_ratingsを空の配列(またはハッシュ)に設定する必要があります。あまり多くのコードなしでこれを行う簡単な方法はありますか?ありがとう!
@filtered_ratings = params[:ratings].keys if params[:ratings].respond_to? :keys
編集:
# if params[:ratings] is nil then return []
@filtered_ratings = params[:ratings].try(:keys) || []
これを試して:
@filtered_ratings = params[:ratings].try(:keys)
params[:ratings]
の場合、 (エラーを発生させる代わりに)同様nil
に戻ります。nil
また、間違いなく#keys
空のハッシュ({}
)を呼び出すことができます。しかし、nil
それは1つではありません。
私はそれに慣れているので、andandgemを使用します:
@filtered_ratings = params[:ratings].andand.key
これにより、@ filtered_ratingsがnil、つまりキー値に設定されます。これは、希望する値である場合とそうでない場合があります。