有没有一种干净的方法可以避免在嵌套的 params 哈希中调用 nil 上的方法? [英] Is there a clean way to avoid calling a method on nil in a nested params hash?

查看:28
本文介绍了有没有一种干净的方法可以避免在嵌套的 params 哈希中调用 nil 上的方法?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我对获取 params 哈希的嵌套名称"参数很感兴趣.调用类似

I'm interested in getting the nested 'name' parameter of a params hash. Calling something like

params[:subject][:name]

当 params[:subject] 为空时抛出错误.为了避免这个错误,我通常这样写:

throws an error when params[:subject] is empty. To avoid this error I usually write something like this:

if params[:subject] && params[:subject][:name]

有没有更简洁的方法来实现这一点?

Is there a cleaner way to implement this?

推荐答案

检查 Ick's 也许.您不需要显着重构您的代码,只需在必要时穿插可能代理:

Check Ick's maybe. You don't need to significantly refactor your code, just intersperse maybe proxies when necessary:

params[:subject].maybe[:name]

同一作者(raganwald)还写了andand,有同样的想法.

The same author (raganwald) also wrote andand, with the same idea.

这篇关于有没有一种干净的方法可以避免在嵌套的 params 哈希中调用 nil 上的方法?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆