小编典典

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

all

我在 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

阅读 78

收藏
2022-07-07

共1个答案

小编典典

你想要has_key?

if(params.has_key?(:one) && params.has_key?(:two))

只是检查if(params[:one])会被“there but nil”和“there but
false”值所愚弄,而您正在询问是否存在。您可能需要区分:

  • 根本不在那里。
  • 那里但是nil
  • 那里但是false
  • 那里只有一个空字符串。

也是。很难说没有您的确切情况的更多细节。

2022-07-07