我是红宝石的新手,我不确定这个问题是否合适,但这是我的问题。
我有一个具有无限字符串参数的函数。我想知道他们是否都在http请求中。这是我的代码:
def http__params_exists *list
list.each do |p|
if params[:'#{p}'].nil?
return false
end
end
true
end
举个例子:我有一个带有“lat”参数的查询。我想要执行的条件是if params[:lat].nil?
我尝试了一些技巧,但都失败了。 感谢。
ps:关于红宝石的另一个问题。我不完全知道像:method_not_allowed
这样的符号的对象类型(例如)。我知道我们可以调用一个命名一些参数的函数,但是这个对象已经在某个地方被定义了,好像它是控制器的一个公共变量,但它似乎不是。
答案 0 :(得分:2)
您需要使用"
而不是'
,以便解释变量。实施例
a = 'string'
:'#{a}'
==> :"\#{a}"
:"#{a}"
==> :string
:"#{a}" == :string
==> true
所以,你的代码应该是
...
if params[:"#{p}"].nil?
return false
end
...
This是了解Ruby符号的有趣链接。