From: Robert Klemme Date: 2007-01-22T19:00:42+09:00 Subject: Re: conditional variable assignment from array On 22.01.2007 09:57, Josselin wrote: > one of my methods receives a sort parameter either as > > params => {"sort"=>{"criteria"=>"1"} } > OR > params => {"sort"=>"1"} > > presently, I assign a variable @sc as follows : > > params[:sort].nil? ? @sc = "1" : @sc = params[:sort][:criteria] > > how can I assign @sc to params[:sort][:criteria] OR params[:sort] > whatever received... ? First of all you cannot mix symbol and string keys, i.e. you cannot use a symbol to retrieve a string key: irb(main):001:0> h={"sort"=>1} => {"sort"=>1} irb(main):002:0> h[:sort] => nil Maybe you want something like this: tmp = params["sort"] @sc = Hash === tmp ? tmp["criteria"] : tmp Cheers robert