相关疑难解决方法(0)

如何测试rails中是否存在参数

我在Ruby on Rails中使用IF语句来尝试测试是否设置了请求参数.无论是否设置了两个参数,以下if块的第一部分都会被触发.如果设置了params [:one]和params [:two],我该如何才能触发此部分?

if (defined? params[:one]) && (defined? params[:two])
 ... do something ...
elsif (defined? params[:one])
 ... do something ...
end
Run Code Online (Sandbox Code Playgroud)

ruby ruby-on-rails

174
推荐指数
8
解决办法
17万
查看次数

是否有一种干净的方法可以避免在嵌套的params哈希中调用nil上的方法?

我有兴趣获取params哈希的嵌套'name'参数.打电话给像

params[:subject][:name]
Run Code Online (Sandbox Code Playgroud)

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

if params[:subject] && params[:subject][:name]
Run Code Online (Sandbox Code Playgroud)

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

ruby null ruby-on-rails hashmap

33
推荐指数
4
解决办法
6320
查看次数

如何避免NoMethodError在嵌套哈希中缺少元素,而不重复nil检查?

我正在寻找一种避免nil在深层嵌套哈希中检查每个级别的好方法.例如:

name = params[:company][:owner][:name] if params[:company] && params[:company][:owner] && params[:company][:owner][:name]
Run Code Online (Sandbox Code Playgroud)

这需要三次检查,并且会产生非常难看的代码.有办法解决这个问题吗?

ruby hash ruby-on-rails hash-of-hashes

28
推荐指数
3
解决办法
3547
查看次数

标签 统计

ruby ×3

ruby-on-rails ×3

hash ×1

hash-of-hashes ×1

hashmap ×1

null ×1