我曾經在一個Rails應用程序下面的非常難看Ruby代碼我工作:紅寶石:尼爾斯在IF語句
if params.present?
if params[:search].present?
if params[:search][:tags_name_in].present?
...
end
end
end
所有我想要問的是是否PARAMS [:搜索] [ :tags_name_in]已定義,但由於參數,可以而params [:搜索],而params [:搜索] [:tags_name_in]可能全部是零,如果我用...
if params[:search][:tags_name_in].present?
...我如果沒有參數或沒有搜索參數,會得到一個錯誤。
當然,必須有更好的方法來做到這一點......建議?
的說明哪些回答我選擇的是:在我的應用程序的這個條件是否返回'nil'或'false'並不重要,':tags_name_in'不是空白也不重要,我只需要測試':tags_name_in'是否被定義而不會引發錯誤。所以,對於我的情況,我喜歡Will Ayd給出的'defined?'方法。不過,我認爲邁克劉易斯的方法可能會對其他可能需要避免將零價值轉化爲條件的人更有用。所以,請看這兩個答案,並決定這是否在你的情況。 – Andrew 2011-03-22 17:03:41