Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/52.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 使用Rails 4.1 ActionMailer::preview预览电子邮件需要设置哪些路径?_Ruby On Rails_Routes_Preview_Mailer - Fatal编程技术网

Ruby on rails 使用Rails 4.1 ActionMailer::preview预览电子邮件需要设置哪些路径?

Ruby on rails 使用Rails 4.1 ActionMailer::preview预览电子邮件需要设置哪些路径?,ruby-on-rails,routes,preview,mailer,Ruby On Rails,Routes,Preview,Mailer,所以很明显,我的一项权利是在默认Rails 1用于mailer预览之前使用 我需要在routes rb文件中键入什么?我知道这是一个老问题,但我想我还是会发布一个答案 我猜您在routes.rb文件的末尾有一条类似的路线: MyTestApp::Application.routes.draw do end 这是一条“通吃”路线。rails代码将mailer预览路由附加到路由的末尾,因此由于“全面覆盖”路由,永远无法到达这些路由 这听起来像是rails 5.0中的“包罗万象”路线可能会被取消?

所以很明显,我的一项权利是在默认Rails 1用于mailer预览之前使用


我需要在routes rb文件中键入什么?

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

我猜您在routes.rb文件的末尾有一条类似的路线:

MyTestApp::Application.routes.draw do

end
这是一条“通吃”路线。rails代码将mailer预览路由附加到路由的末尾,因此由于“全面覆盖”路由,永远无法到达这些路由

这听起来像是rails 5.0中的“包罗万象”路线可能会被取消?回顾你的路线可能是一个好主意,这样你就不需要“一网打尽”。这里有一个链接指向某个问题,其中有人提到“一网打尽”将在某个时候退役:

所以,这里是修复方法使用风险自负

在“全面覆盖”之前插入邮件发送路线

match '/:controller(/:action(/:id))'
这将使你的邮件工作,你的'一网打尽'将继续工作。现在,这是一个完整的hack,只有在您能够解决根本问题之前才应该使用它,这就消除了对“一网打尽”路线的需要

我确实在rails的问题列表中找到了以下内容,看起来已经被接受并合并了。不确定它是什么版本,但似乎他们已经更新了mailer预览代码来预先设置路由,而不是附加路由

祝你好运

match '/:controller(/:action(/:id))'
    get '/rails/mailers' => "rails/mailers#index"
    get '/rails/mailers/*path' => "rails/mailers#preview"