如何在Rails中的Model方法中获取url_for对象

Ada*_*NYC 8 url ruby-on-rails actionmailer

我想创建一个包含Rails中对象路径的字符串.

  def notification_content   
      "#{app.listing_url(my_listing, :host => "example.com")}. " +
  end
Run Code Online (Sandbox Code Playgroud)

然后,此内容将作为电子邮件内容提供给我的ActionMailer.

在控制台中,它工作正常.但是,当我在localhost服务器上运行它时,我收到以下错误:

undefined local variable or method `app'
Run Code Online (Sandbox Code Playgroud)

我该怎么办呢?另外,如何使路径成为超链接?

非常感谢.

cly*_*yfe 15

include Rails.application.routes.url_helpers
def notification_content   
  "#{listing_url(my_listing, :host => "example.com")}. " + ...
end
Run Code Online (Sandbox Code Playgroud)

  • 不需要包括; 你可以直接调用该对象:Rails.application.routes.url_helpers.url_for(...) (13认同)
  • 对于将来访问这里的人来说,这在Rails 5中将不起作用。 (3认同)