的Rails僅用於現場確認檢查是否有在請求相應的_confirmation
場。導軌 - 確認字段被綁定到HTML表單helper
爲了進一步解釋,這裏是一個示例Rails視圖:
<%= form_for(resource, as: resource_name, url: registration_path(resource_name)) do |f| %>
<%= f.label :email %>
<%= f.email_field :email, autofocus: true %>
<%= f.label :password %>
<%= f.password_field :password, autocomplete: "off" %>
<%= f.label :password_confirmation %>
<%= f.password_field :password_confirmation, autocomplete: "off" %>
<%= f.submit "Sign up" %>
<% end %>
這種形式按預期工作。
但是,如果你刪除:
<%= f.label :password_confirmation %>
<%= f.password_field :password_confirmation, autocomplete: "off" %>
密碼不再確認。
我遇到的問題是我所有的JSON
請求正在成功,沒有相應的_confirmation
字段。
該請求是成功的:
{
"email": "[email protected]",
"password" : "somepassword"
}
這不是:
{
"email": "[email protected]",
"password" : "somepassword",
"password_confirmation": "_somepassword
}
此外,對於第二JSON,如果password
和password_confirmation
匹配,則請求是成功的(其被理解)。
我認爲第一個請求不應該成功,因爲沒有密碼確認。
這是一個錯誤或確認以來的場預期的行爲應該從傭工被捆綁到的ActiveRecord,而不是HTML。
然後,如何在基於Rails的JSON API中複製字段確認?
這有什麼用的形式幫助 - 它只是validates_confirmation_of'的'的行爲,允許爲零。對於API來說,這是一種明智的做法。密碼確認只是幫助用戶確保他按預期鍵入密碼(有點煩人)。它沒有實際的安全價值。 – max