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方法的方法)。