_confirmation
如果请求中有相应的字段,Rails 只会检查字段确认。
为了进一步解释,这里是一个示例 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": "me@example.com",
"password" : "somepassword"
}
这不是:
{
"email": "me@example.com",
"password" : "somepassword",
"password_confirmation": "_somepassword
}
此外,对于第二个 JSON,如果password
和password_confirmation
匹配则请求成功(这是可以理解的)。
我认为第一个请求不应该成功,因为没有密码确认。
这是一个错误还是预期的行为,因为确认字段应该绑定到 ActiveRecord 而不是来自帮助程序的 HTML。
那么如何在基于 Rails 的 JSON API 中复制字段确认呢?