如果Rails中的对象是nil,我如何跳过一段代码?

Tra*_*tto 1 ruby controller ruby-on-rails-3

我有一段代码可以在单击相应的复选框时启用或禁用选择列表,但是如果它们在帖子上全部禁用,则不会在params列表中发送这些代码.所以我只有在存在时才需要执行代码.

我用过:

if params[:id][:id2].nil?
Run Code Online (Sandbox Code Playgroud)

if params[:id][:id2].blank?
Run Code Online (Sandbox Code Playgroud)

if params[:id][:id2].empty?
Run Code Online (Sandbox Code Playgroud)

更不用说了:

if params[:id][:id2]
Run Code Online (Sandbox Code Playgroud)

并且所有人都会犯同样的错误......"你有一个零对象,你没有想到它." 我该如何解决这个错误?

jos*_*ota 7

可能params[:id]是零,检查params[:id].nil?.

编辑:下面的评论正确地表明,blank?如果你试图评估其中任何一个nil?或更好empty?.