【问题标题】:In Rails, what's the URL helper for an unknown model?在 Rails 中,未知模型的 URL 助手是什么?
【发布时间】:2013-04-18 03:53:31
【问题描述】:

我试图在 Rails 中找到一个我不一定知道 rake 任务类的模型的路径(所以它不在 .erb 中)。

我知道我可以做到:

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

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

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

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

没有指定像 model_path 这样的 url 助手。这就是我要找的。​​p>

【问题讨论】:

  • 我不确定你在这里问什么。模型没有“默认路线”。

标签: ruby-on-rails urlhelper


【解决方案1】:

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

如果您使用模型致电url_for,它会进一步转发到polymorphic_path 或polymorphic_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了解更多

【讨论】:

    猜你喜欢
    • 2012-12-07
    • 1970-01-01
    • 2015-08-27
    • 2011-09-16
    • 2010-09-08
    • 1970-01-01
    • 1970-01-01
    • 2015-12-17
    • 2011-08-29
    相关资源
    最近更新 更多