是否可以有条件地将项添加到OpenStruct?

时间:2015-07-23 16:33:06

标签: ruby

我想在opentruct中添加一个字符串,如下所示:

link = link.split(",")
OpenStruct.new(title: link[0].strip, url: link[1].strip)

有时,它包含第三个变量,我想添加它:

OpenStruct.new(title: link[0].strip, url: link[1].strip, id: link[2].strip)

我可以检查link[2]并创建两个OpenStruct.new行,但是之后是否有某种方法可以添加id?

1 个答案:

答案 0 :(得分:1)

准备哈希并有条件地修改 。然后无条件地将它传递给OpenStruct。

link = link.split(',')
os_args = { title: link[0].strip, url: link[1].strip }
os_args[:id] = link[2].strip if link[2]

OpenStruct.new(os_args)