在Ruby on Rails应用程序上收集用户的一些信息之后,我有:
params[:store] # => {"products"=>{"id"=>"89,90,91"}}
我需要提取字符串"89,90,91"
。有没有办法做到这一点?
答案 0 :(得分:2)
params
这里是一个Hash
对象,在Ruby中,是一个数据结构,是一个键值对列表。例如,以下是键值对的Hash
对象:
user = { first_name: "Michael", last_name: "Chabon", occupation: "author" }
如果要从user
中提取值,则需要传递所需值的键。例如,假设我们想要从last_name
获取密钥user
的值。我们只需致电user[:last_name]
即可返回Chabon
。
同样,我们可以嵌套哈希,这会让我们回到你的例子中。让我们看看父Hash
params
,它可能看起来像这样:
params = {:store=>{"products"=>{"id"=>"89,90,91"}}, . . . }
如果我们致电params[:store]
,则会返回以下内容:
{"products"=>{"id"=>"89,90,91"}}
现在,由于我们正在处理嵌套的哈希,我们可以堆叠我们的密钥。例如,如果我们调用params[:store]["products"]
,则会返回以下内容:
{"id"=>"89,90,91"}
现在,由于您正在寻找"89,90,91"
,我们可以使用["id"]
将params[:store]["products"]["id"]
堆叠到上面,并返回以下内容:
"89,90,91"
如果您想将其存储在变量中,您只需将我们上面所做的内容分配给变量:
ids_as_string = params[:store]["products"]["id"]
答案 1 :(得分:0)
给出的例子只是:
params[:store]['products']['id']
#=> "89,90,91"