В рельсах, как я могу сгенерировать путь модели (с пользовательским to_param), не загружая модель? - PullRequest
0 голосов
/ 16 сентября 2011

У меня есть ситуация, когда мне нужно создать ссылки для группы моделей без загрузки соответствующих моделей. Это осложняется тем фактом, что я переопределил 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?

Какие есть альтернативы для этой ситуации?

...