此刻只是干涉Rails,并努力弄清楚如何逃避“当你没想到它时你有一个零对象”的错误。目前我正在用“除非object.nil?”逃避他们每个人。消息,但它变得非常难看。一个很好的例子:
unless params[:professiontypeinfo].nil?
unless params[:professiontypeinfo][professiontypeid].nil?
unless params[:professiontypeinfo][professiontypeid]["industrybodies"].nil?
@professional.professional_specialties.find_by_profession_type_id(professiontypeid).industry_bodies = IndustryBody.find_all_by_id(params[:professiontypeinfo][professiontypeid]["industrybodies"])
end
end
end
Soo ......逃避这些事情的正确/优雅方式是什么?
答案 0 :(得分:4)
Hash[]
返回false,所以
if params[key]
false
没有params
,将返回key
And-ed条件短路(即在第一个条件为假时停止评估),因此即使缺少key
,以下内容也会起作用:
if params[key] && params[key][sub_key]
答案 1 :(得分:2)