У меня есть ситуация, когда мне нужно создать ссылки для группы моделей без загрузки соответствующих моделей. Это осложняется тем фактом, что я переопределил to_param
в моей модели, чтобы создать слаг в качестве идентификатора, который создается путем объединения нескольких полей.
Для обычных операций это не имеет большого значения, так как объект загружен. Однако в этом конкретном сценарии - рендеринг ссылок из результатов поиска - у меня есть необходимые значения полей (они все проиндексированы), но у меня нет объектов модели. Я хотел бы избежать необходимости извлекать каждую из моделей только для отображения URL.
Вот псевдомодель:
class MyModel
include Mongoid::Document
field :name
field :location
.
<[extraneous bits removed]>
.
def to_param
[ name, location ].map(&:parameterize).join('-')
end
end
Есть ли способ "подделать" создание модели, чтобы я мог передать его обычным <model>_path
методам генерации URL?
Какие есть альтернативы для этой ситуации?