0
我想在rails中實現一個被遺忘的密碼解決方案。我有一個表格供用戶輸入他們註冊帳戶的電子郵件地址,我打算讓郵件程序給他們發送一封唯一的URL,將他們鏈接到密碼重置頁面。在軌道忘記密碼
我的config/routes.rb中文件有以下途徑:
resources :users do
collection do
get :lost_password #the account-email submisison form url
get :reset_password #a url for the function that sends the response email
end
end
當我從控制檯運行耙路線,我得到的路徑我想:
lost_password_users GET /users/lost_password(.:format) {:action=>"lost_password", :controller=>"users"}
reset_password_users GET /users/reset_password(.:format) {:action=>"reset_password", :controller=>"users"}
users GET /users(.:format) {:action=>"index", :controller=>"users"}
POST /users(.:format) {:action=>"create", :controller=>"users"}
但!當用戶點擊了提交在下面的代碼中列出的表格按鈕:
<h3>Reset Password</h3>
<%= form_for(:user, :url => reset_password_users_path) do |f| %>
<p>Enter the email address you used to register for this site.</p></br>
<div class="field">
<%= f.label :email %> </br>
<%= f.text_field :email %>
</div>
<div class="actions">
<%= f.submit "Send Email" %>
</div>
<% end %>
我得到一個
沒有路由匹配 「/用戶/ reset_password」
通過錯誤ActionController。
我呢,其實,有意見,並同時爲lost_password_users_path和reset_password_users_path定義控制器的功能,所以我很困惑,爲什麼我會遇到這樣的路由錯誤。
我有兩個問題:
- 爲什麼會ActionController的提出這個錯誤,當我有明確的路徑,方法和觀點界定?
- 是否有其他人在RoR中實現了密碼重置,並且您能否借鑑任何有關這種方法是否良好的方法?
在此先感謝!
由於改變
get :reset_password
到post :reset_password
,普拉!仍在努力理解這一切如何聯繫在一起的不斷增長的痛苦。 = P – ArcGhost 2011-05-19 11:05:12