如果 Rails 中 object 为 nil,如何跳过一段代码?
我有一段代码,可以在单击相应的复选框时启用或禁用选择列表,但是如果它们在发布时全部禁用,则不会将它们发送到参数列表中。所以我只需要在它们存在时执行代码。
我已经使用过:
if params[:id][:id2].nil?
并且
if params[:id][:id2].blank?
更不用说
if params[:id][:id2].empty?
简单地提到:
if params[:id][:id2]
并且都给出了相同的错误......“你有一个 nil 对象,而你没有预料到它。”我该如何修复这个错误?
I have a piece of code that enables or disables selection lists when the appropriate checkbox is clicked, however if they are all disabled on post it will not send these in a the params list. So I need to execute code only if they exist.
I've used:
if params[:id][:id2].nil?
and
if params[:id][:id2].blank?
also
if params[:id][:id2].empty?
not to mention simply:
if params[:id][:id2]
And all give the same error..."You have a nil object where you weren't expecting it." How can I fix this error?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
可能
params[:id]
为 nil,请检查params[:id].nil?
。编辑:下面的注释正确地指出,如果您寻求针对
nil?
或empty?
进行评估,blank?
会更好。代码>.Probably
params[:id]
is nil, check forparams[:id].nil?
.EDIT: The comments below state correctly that
blank?
is better if you seek to evaluate against eithernil?
orempty?
.同时
允许这样的事情:
Meanwhile
allows things like: