Ruby on rails 在rails中,如何在不加载模型的情况下生成模型路径(带有自定义to_参数)?

Ruby on rails 在rails中,如何在不加载模型的情况下生成模型路径(带有自定义to_参数)?,ruby-on-rails,ruby-on-rails-3,slug,Ruby On Rails,Ruby On Rails 3,Slug,我有一种情况,我需要为一组模型生成链接,而不加载有问题的模型。这是复杂的,因为我在我的模型中将重写为_param,生成一个slug作为标识符,该标识符由几个字段串联而成 对于正常操作,这并不是什么大问题,因为对象已加载。然而,在这个特定的场景中(从搜索结果呈现链接),我有必要的字段值(它们都被索引),但我没有模型对象。我希望避免仅仅为了呈现URL而检索每个模型 这是一个伪模型: class MyModel include Mongoid::Document field :name

我有一种情况,我需要为一组模型生成链接,而不加载有问题的模型。这是复杂的,因为我在我的模型中将
重写为_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
classmymodel
include Mongoid::Document
字段:名称
字段:位置
.
. 
def至_参数
[名称,位置].map(&:参数化).join('-')
结束
结束
有没有办法“伪造”模型创建,以便我可以将其传递到正常的
\u路径
url生成方法


在这种情况下有什么替代方案?

我不太清楚你的意思。但是我相信你可以做
my\u model\u path(:id=>“some slug”)
这意味着在模型之外生成slug值,所以我必须公开它。我认为这是一个可能的解决方案,但我希望有更像rails的东西(即调用传递可用字段值的_path方法的方法)。