在rails中,如何在不加载模型的情况下生成模型路径(使用自定义to_param)?

时间:2011-09-15 23:43:55

标签: ruby-on-rails ruby-on-rails-3 slug

我有一种情况,我需要为一组模型生成链接而不加载有问题的模型。由于我在模型中重写了to_param以生成一个slug作为由多个字段的串联构造的标识符,因此这很复杂。

对于正常操作,这对于加载对象来说并不是什么大问题。但是在这个特定场景中 - 从搜索结果中呈现链接 - 我有必要的字段值(它们都被索引),但我没有模型对象。我想避免只是为了渲染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生成方法?

这种情况有哪些替代方案?

0 个答案:

没有答案