【发布时间】:2016-08-31 12:50:08
【问题描述】:
首先我是一名 Java 开发人员,但我的团队正在为我们的 Rails 产品开发 SSO 微服务,所以我边走边学。
目前我已将其设置为在用户将其电子邮件输入此表单时发送密码重置确认:
<%= form_for(resource, as: resource_name, url: password_path(resource_name), html: { method: :post }) do |f| %>
<%= devise_error_messages! %>
<div class="row">
<div class="medium-12 small-12">
<div class="field">
<%= f.label :email, class: 'field-label' %>
<%= f.email_field :email, autofocus: true %>
</div>
</div>
</div>
<div class="row">
<div class="actions columns medium-12 small-12">
<%= f.submit "Send", id: "send-button" %>
</div>
</div>
<div class="row text-center align-center">
<div class="small-8 small-centered columns">
<br><p id="form-subheading">* For security reasons, we do NOT store your password. We will NEVER send your password via email.</p>
</div>
</div>
<% end %>
并且成功通过class Users::PasswordsController < Devise::PasswordsController中的如下函数
# POST /resource/password
def create
super
end
现在的问题是我们需要在表单中添加以下first_name 和last_name 字段,并在将表单发送到他们的电子邮件之前根据用户模型对其进行身份验证,但它完全忽略了这些参数。显然我需要在某个地方进行检查,但不知道从哪里开始。
<div class="row">
<div class="medium-5 small-12">
<div class="field">
<%= f.label :first_name, class: 'field-label' %>
<%= f.text_field :first_name %>
</div>
</div>
<div class="medium-6 medium-offset-1 small-12">
<div class="field">
<%= f.label :last_name, class: 'field-label' %>
<%= f.text_field :last_name %>
</div>
</div>
</div>
我知道它们会被发送到后端,因为 params[:user] 变量包含如果我在函数中放置 byebug 语句的信息。我只是不确定如何验证表单中的新信息。
任何有关为此表单构建自定义字段的帮助将不胜感激。
【问题讨论】:
标签: ruby-on-rails forms devise