2015-07-23 2 views
0

Я хочу, чтобы добавить строку в openstruct так:Можно ли условно добавить элемент в OpenStruct?

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 s, но есть ли способ добавить только идентификатор впоследствии?

ответ

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) 
+0

это похоже на работу, но когда я использую link.id, я получаю ["string"] – Himmators

Смежные вопросы