【问题标题】:Rails - How To Get Full URL in ModelRails - 如何在模型中获取完整 URL
【发布时间】:2017-03-03 07:05:13
【问题描述】:

在我的 Rails 5 应用程序中,我试图获取我的实例的完整 URL,但是当我尝试按照这个 SO 问题中的建议使用 url_for 时,我收到一个错误 NoMethodError: undefined method 'url_for' for #<Product:0x8646fc0>

Full URL with url_for in Rails

def get_url
  url = url_for(self)
end

我也尝试了product_url(self) 并收到了类似的错误。

获取实例 URL 的正确方法是什么?谢谢!

【问题讨论】:

    标签: ruby-on-rails


    【解决方案1】:

    helper 方法仅在视图或装饰器中可用。 最好在装饰器中定义get_url

    如果你想在模型中使用辅助方法,试试这个

    def get_url
      Rails.application.routes.url_helpers.product_url(self)
    end
    

    【讨论】:

    • 我得到了这个工作,但必须添加主机和 only_path 选项才能显示完整的 url Rails.application.routes.url_helpers.product_url(self, :only_path => false, :host => "www.foo.com")
    • 你也可以指定协议。像这样Rails.application.routes.url_helpers.product_url(self, :host => "www.foo.com", :protocal => 'https')
    • 这也适用于开发还是仅适用于生产?
    猜你喜欢
    • 1970-01-01
    • 2019-04-08
    • 2012-04-28
    • 2015-03-11
    • 2016-07-05
    • 1970-01-01
    • 2012-06-22
    • 1970-01-01
    相关资源
    最近更新 更多