вы могли бы сделать это в модели:
У меня редко бывает опыт работы на монгоиде.Следующее будет работать в активной записи (единственное отличие - часть write_attribute)
class Event
def tags=(value_from_form)
value_from_form = "" unless value_from_form.respond_to(:split)
write_attribute(:tags, value_from_form.split(','))
end
end
С другой стороны, для согласованности вы можете сделать следующее:
class Event
def tags_for_form=(value_from_form)
value_from_form = "" unless value_from_form.respond_to(:split)
self.tags = value_from_form.split(',')
end
def tags_for_form
self.tags
end
# no need to change tags and tags= methods. and tags and tags= methods would return an array and accept an array respectively
end
В первом случае (непосредственно перезаписывая метод tags=
) tags=
принимает строку, но tags
возвращает массив.
Во втором случае tags_for_form=
и tags_for_form
принимаети возвращает строку, в то время как tags=
и tags
принимает и возвращает массив.