[英]Ruby on rails - Simple form not displaying errors for radio select. Other errors display fine
我有一个包含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 %>
User.rb:
validates_inclusion_of :artist, in: [true, false], on: :create
注册没有问题,我唯一的问题是错误未显示。 我不确定是否需要粘贴更多代码,但是如果是这样,我将使用所需的内容进行更新。
与简单形式的f.input
处理输入本身之外的所有相关标签(标签标签,错误消息标签) f.radio_button
, f.radio_button
仅处理输入字段,因为它实际上是ActionView
的帮助者 ,而不是简单形式。
当字段附加了一些错误时,默认情况下,简单表单会使用“错误”类生成一个span
。 我想您将不得不像使用字段标签那样,自行绘制跨度:
<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>
<!-- show error for the artist attribute, if present -->
<% if resource.errors['artist'].present? %>
<span class="error"><%= resource.errors['artist'] %></span>
<% end %>
</div>
我无法弄清楚发生了什么,但是您可以尝试一些技巧
<%= f.radio_button :artist, "1", :id => "artistuser", :selected => f.object.artist %>
然后您可以检查它是否存在
<% if f.object.artist.blank? %>
Display Your Error Message
只是一个粗略的想法,但只需进行少量修改即可使其生效,如果有任何问题,请告诉我。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.