【发布时间】:2016-10-12 06:19:28
【问题描述】:
我有一个包含 4 个元素的用户注册表单(Devise);用户名、电子邮件、密码和“用户类型”。用户类型是布尔值,在表单上显示为单选。
用户名、电子邮件和密码错误显示没有问题,但如果用户没有选择单选按钮之一,我没有收到任何错误消息。验证已经到位,如果没有选择其中一个单选按钮,表单将不会发送,但我没有收到任何错误。
形式:
<%= simple_form_for(resource, as: resource_name, url: registration_path(resource_name)) do |f| %>
<%= f.error_notification %>
<div class="role-selector">
<p class="type-sel-txt"><%= t('front.whattype') %></p>
<label for="artistuser">
<%= f.radio_button :artist, "1", :id => "artistuser" %>
<span class="artistuser-sel"><%= t('front.bandm') %></span>
</label>
<label for="eventuser">
<%= f.radio_button :artist, "0", :id => "eventuser" %>
<span class="eventuser-sel"> <%= t('front.evento') %></span>
</label>
</div>
<%= f.input :username, required: true, autofocus: true, placeholder: t('forms.login.user'), label: false %>
<%= f.input :email, required: true, placeholder: t('forms.login.email'), label: false %>
<%= f.input :password, required: true, placeholder: t('forms.login.password'), label: false %>
<div id="passcheck"></div>
<%= f.button :submit, t("forms.login.signup"), id: "register-btn" %>
<% end %>
用户.rb:
validates_inclusion_of :artist, in: [true, false], on: :create
注册没有问题,我唯一的问题是没有显示错误。我不确定是否需要粘贴更多代码,但如果需要,我会根据需要进行更新。
【问题讨论】:
-
没有错误,因为在这种情况下验证总是有效的。我的意思是,如果用户不选择任何内容,则值
artist为false,并且false 符合您的要求,因此没有错误。 -
artist 的值不是 false,因为如果未选择任何内容,它默认为
nil。这可以确认,因为如果未在表单中选择artist布尔值,则表单将不会发送。
标签: ruby-on-rails error-handling devise simple-form