我曾经在一个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