【问题标题】:Generate a full URL in a Mailer view - Rails在 Mailer 视图中生成完整的 URL - Rails
【发布时间】:2014-09-10 13:53:25
【问题描述】:

在邮件视图中:

      <%= url_for(controller:'resas', action: 'show', only_path: false) %>

耙路线:

                      resa GET    /resas/:id(.:format)             resas#show

这是尝试生成电子邮件时的异常:

No route matches {:action=>"show", :controller=>"resas"}

我的主机是参数化的(作为本地主机)。

【问题讨论】:

    标签: ruby-on-rails ruby-on-rails-4 routing actionmailer url-for


    【解决方案1】:

    我认为您需要为显示路线传递一个 id。试试看

    <%= url_for(controller:'resas', action: 'show', id: @resa.id, only_path: false) %>
    

    (不确定您的资源是如何命名的)

    【讨论】:

      【解决方案2】:

      至少你的路由语法不正确。试试:

      #routes.rb
      GET    /resas/:id(.:format), to: resas#show
      

      在此处阅读 rails 文档中有关路由和路由语法的所有信息:http://guides.rubyonrails.org/routing.html

      您可能还想在不提供主机名的情况下重新考虑only_path: false。在此处阅读有关 url_for 和 only_path 的更多信息:http://api.rubyonrails.org/classes/ActionDispatch/Routing/UrlFor.html

      【讨论】:

      • 对不起,我不明白你的回答。我的主机是在开发环境中配置的。当我做 rake 路由时,我定义了路由 resas#show 那么有什么问题?
      • url_for 不知道这一点。我为您链接的文档中有两个非常好的段落来解释它。
      • 而且你的路由语法与文档不匹配,或者在我的应用程序中工作,但如果它对你有用,那可能不是问题。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-12-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-05-07
      • 1970-01-01
      相关资源
      最近更新 更多