使用ruby中的字符串访问命名参数

时间:2012-08-25 01:56:12

标签: ruby

我是红宝石的新手,我不确定这个问题是否合适,但这是我的问题。

我有一个具有无限字符串参数的函数。我想知道他们是否都在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这样的符号的对象类型(例如)。我知道我们可以调用一个命名一些参数的函数,但是这个对象已经在某个地方被定义了,好像它是控制器的一个公共变量,但它似乎不是。

1 个答案:

答案 0 :(得分:2)

您需要使用"而不是',以便解释变量。实施例

a = 'string'

:'#{a}'
==> :"\#{a}"

:"#{a}"
==> :string

:"#{a}" == :string
==> true

所以,你的代码应该是

...
if params[:"#{p}"].nil?
  return false
end
...

This是了解Ruby符号的有趣链接。