You have many choices that will return the value of params[:search][:tags_name_in]
or nil
if params[:search]
is nil
.
Clear but lengthy:
params[:search] && params[:search][:tags_name_in]
Using try
(from active_support
):
params[:search].try(:[], :tags_name_in)
Using rescue:
params[:search][:tags_name_in] rescue nil
Using fetch
:
params.fetch(:search, {})[:tags_name_in]
Note that fetch
can sometime be used to avoid the if
altogether, in particular if there is nothing to do when the param is not specified:
def deal_with_tags
MyModel.where :tags => params.fetch(:search){ return }[:tags_name_in]
end