加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby-on-rails – 使用Rails 4.1 ActionMailer :: Preview预设电

发布时间:2020-12-17 04:25:50 所属栏目:百科 来源:网络整理
导读:class UserPreview ActionMailer::Preview # Accessible from http://localhost:3000/rails/mailers/notifier/welcome_email def welcome_email UserMailer.welcome_email(User.first) endend 我使用Ruby on Rails 4.1进行了这个简单的邮件预览. 如果我注释
class UserPreview < ActionMailer::Preview
  # Accessible from http://localhost:3000/rails/mailers/notifier/welcome_email
  def welcome_email
    UserMailer.welcome_email(User.first)
  end
end

我使用Ruby on Rails 4.1进行了这个简单的邮件预览.

如果我注释掉我的routes.rb文件中的所有路由并且仅保留此信息,则邮件程序预览会起作用:

MyTestApp::Application.routes.draw do

end

显然,我的一个权利是在默认的Rails之前用于邮件预览.

我需要输入路由rb文件?

解决方法

我知道这是一个老问题,但我想我还是会发一个答案.

我猜你在routes.rb文件的末尾附近有一条类似于此的路线:

match '/:controller(/:action(/:id))'

这是一个“赶上所有”的路线. rails代码将邮件程序预览路由附加到路径的末尾,因此由于“全部捕获”路径而永远不会到达它们.

听起来像’catch all’路线可能会在rails 5.0中退役吗?查看您的路线可能是个好主意,因此您不需要“全部捕获”.这是一个问题的链接,有人提到’赶上所有’在某些时候退休:https://github.com/rails/rails/issues/15600

所以,这是修复.使用风险自负!

在“全部捕获”之前插入邮件路由.

get '/rails/mailers' => "rails/mailers#index"
    get '/rails/mailers/*path' => "rails/mailers#preview"

这将允许您的邮件工作,你的’全部捕获’将继续工作.现在,这是一个完整的黑客攻击,只有在你能够修复root问题之后才能使用它,这样就不再需要’catch all’路由了.

我确实在rails的问题列表中找到了以下内容,看起来已被接受并合并.不知道它是什么版本,但似乎他们更新了邮件程序预览代码以预先添加路由而不是附加它们.

https://github.com/rails/rails/pull/17896/files

祝好运!

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读