因此,首先,我不是最熟悉Rails或heroku,所以最终可能会比我担心的要简单。我一直在帮助一家初创公司(不太清楚发生了什么,但是他们的开发人员生病了,现在他们没有任何人可以维护/开发他们的网站)。该系统构建在Rails 4.2.6上
上周,我们偶然发现了错误的重定向(未找到服务器)。由于有一个登台服务器以及主要的生产系统,所以我去检查它是否也在发生。
在确认这确实是在两个服务器中都发生之后,我去检查了reset_password_instruction.html.slim中使用的电子邮件模板(这是发送给用户的电子邮件模板)。 rake routes
生成的路由列表中不存在url帮助器(如果名称正确)。 (您会发现可以在其他地方找到类似的问题,例如:devise issues
和
我将网址从edit_password_url
更改为edit_user_password_url
,在本地和登台服务器中对其进行了测试,一切都很好...
但这仍然将我重定向到主站点中不存在的服务器
有些困惑,我回溯了所有步骤以确保我没有做错任何事情,检查了heroku中的登台服务器和主服务器中的代码,一切基本相同。不过,最奇怪的是重定向URL。据我了解,页面如下:
“ www.mypage.com”将具有一个重定向网址,例如“ www.mypage.com/users/password/edit/userId”或类似名称,但它会将我重定向到以下网址: “ {http://mailtracker.allbands.com.br/wf/click?upn=wvr ...”(这3个点让我省略了网址的其余部分。
我到处都在寻找这个mailtracker子域,甚至将其添加到DNS规则中,但一无所获。在阶段中,URL还是有点时髦: https://u3138184.ct.sendgrid.net/wf/click?upn=tF6axPyJ ... 尽管如此,它仍能正常工作,这只会增加我的困惑...
我怀疑有某种heroku软件包可以构建这些URL,但是在此过程中有些混乱。 heroku使用的资源包括:SendGrid,New Relic APM和一些最可能无关的数据库内容。我想在SendGrid上下注,但是在他们的仪表板中没有发现与URL相关的内容。
routes.br
devise_for :users, controllers: {sessions: "sessions",
omniauth_callbacks: "users/omniauth_callbacks",
registrations: "users/registrations"},
path_names: {sign_in: "sign-in",
sign_out: "sign-out",
sign_up: "sign-up"}
devise_scope :user do
get "set_user_info", to: "users/registrations#set_user_info"
end
rake routes | grep password
user_password POST /users/password(.:format) devise/passwords#create
new_user_password GET /users/password/new(.:format)devise/passwords#new
edit_user_password GET /users/password/edit(.:format) devise/passwords#edit
PATCH /users/password(.:format) devise/passwords#update
PUT /users/password(.:format) devise/passwords#update
reset_password_instruction.html.slim
= render 'header'
p
| Someone asked for a link to change your password. YOu can do so with the link below:
p
= link_to 'Change my password', edit_password_url(@resource, reset_password_token: @token)