在Rails中,未知模型的URL帮助器是什么?

时间:2013-04-18 03:53:32

标签: ruby-on-rails urlhelper

我正在尝试将Rails中的路径转换为一个模型,我不一定知道rake任务中的类(因此它不在.erb中)。

我知道我可以这样做:

Rails.application.routes.url_helpers.<model>_path(model)

但是,如果我不一定知道模型怎么办?打开model.class或任何其他此类检查似乎不是Rails-y。我只是在寻找模型的默认路径或网址。

编辑:为了澄清默认路径的含义,它是你在做link_to时得到的href;即,你可以这样做:

<%= link_to "my model", @model %>

没有指定像model_path这样的url帮助器。这就是我在寻找的东西。

1 个答案:

答案 0 :(得分:3)

在内部,link_to调用url_for来获取给定参数的路径。

如果您使用模型致电url_for,则会进一步转发至polymorphic_pathpolymorphic_url

如果您只想要路径

,那么这样的事情应该有用
task :some_task => :environment do
  include Rails.application.routes.url_helpers

  # ...

  path  = polymorphic_path(some_model_instance) # => e.g. "/widgets/42"
end

您也可以使用url_for,但您必须定义:host选项。 See here了解更多