Лично я думаю, что это тот случай, когда было бы полезно дополнительное моделирование домена. Текстовая строка просто слишком общая, чтобы инкапсулировать все данные о себе. Например, в этом случае вы пытаетесь сохранить информацию о определенных частях строки в самой строке.
Вместо этого я предлагаю следующее моделирование проблемной области:
Примечание: я предполагаю, что у вас уже есть модель с именем Article
, которая в настоящее время имеет поле / свойство с именем text
.
class Article < ActiveRecord::Base
has_one :passage
end
и
class Passage < ActiveRecord::Base
belongs_to :article
has_many :highlighted sections
# sample database fields
# text -- the entire text
end
и
class HighlightedSection < ActiveRecord::Base
belongs_to :passage
# sample database fields
# int start -- the (string) index of the start of the passage
# int end -- the (string) index of the end of the passage
end
Вместе эта модель позволяет хранить разделы. Вы также можете расширить модель, чтобы убедиться, что отрывки не перекрываются и т. Д.
Удачи в вашем приложении!