2017-08-21 58 views
1

我想更改RoR提供的密碼提醒網址。 更多詳細信息,想要插入I18n.locale下面的域名。比方說,如何更改設計中的重置密碼URL RoR

ttp://mydomain.com/users/password/edit?reset_password_token=gPudhxxxxxx2xTZ4hBeHeA 

ttp://mydomain.com/en/users/password/edit?reset_password_token=gPudhxxxxxx2xTZ4hBeHeA 

在我reset_password_instructions.html.slim,代碼是這樣的。

p 
    = (I18n.t "resetpassword_mailbody", email: @resource.email).html_safe 
p 
    = link_to (I18n.t "change_my_passwd"), edit_password_url(@resource, reset_password_token: @token) 
p 
    = (I18n.t "mail_footer").html_safe 

需要我覆蓋edit_password_url? 我該怎麼辦?請給我一些建議。

回答

0

用devise改變密碼控制器的路由。

devise_scope :user do 
    get 'cutom_url', to: 'devise/passwords#edit', as: :edit_user_registration 
end 

Reference link

+0

對不起,我的描述有點困難。基本上,上面的代碼提供了「htp://mydomain.com/users/password/edit ....」。但我想將其更改爲「htp://mydomain.com/en/users/password/edit ....」。總之,想要將語言環境納入路徑。可能嗎? –

+0

你需要跳過設計爲我們提供密碼的路線,並創建新的自定義路線 'devise_for:用戶:控制器=> {:註冊=> 「註冊」},跳過:[:密碼]' '得到「/ EN/users/password/edit「=>」設計/密碼#編輯「' –

+0

謝謝。我終於找到了解決辦法。這是edit_password_url的問題。我會在問卷中描述。 –

0

我弄清楚如何。

p 
    = link_to (I18n.t "change_my_passwd"), edit_password_url(@resource, reset_password_token: @token, locale: I18n.locale)