【问题标题】:Validation error does not display for a select field with Rails 3.2Rails 3.2 的选择字段不显示验证错误
【发布时间】:2015-06-04 18:02:23
【问题描述】:

在运行带有带有 formtastic 支持的nested_form gem 的 Rails 3.2.11 时,当出现错误时,选择字段下方的 f.select 助手不会显示验证错误消息。

如果我将 f.select 更改为 f.input,则会在字段下方显示错误。这是一个错误还是 Rails 不会自动为选择字段的验证注入错误?

我基本上通过利用 Rails 提供的“Model”.errors.messages 助手来修复它,但它会导致一些我想避免的自定义 if/else 逻辑。如果可能的话,我宁愿让 Rails 自动注入 *<p class="inline-errors">some error message</p>*

model.rb

validates :consultant, :presence => { :message => "consultant is missing." }

form.html.haml

= semantic_nested_form_for @agreement, :url => "/agreements/update", :html => { :class => "agreement", :autocomplete => "off" } do |f|
  = f.select :consultant, options_for_select(["","option1","option2"], @service_agreement.assigned_consultant)

【问题讨论】:

    标签: ruby-on-rails validation


    【解决方案1】:

    您的选择选项似乎存在问题。我敢打赌,“”被认为是存在的。您想要的是在选择框中有一个空白选项。

    = f.select :consultant, options_for_select(["option1","option2"], @service_agreement.assigned_consultant), include_blank: true
    

    【讨论】:

    • 谢谢,我删除了空引号并使用了 include_blank 但不幸的是没有解决它。
    • 你能试试用select检查表单的验证是否失败吗?将它传递给 proc 并引发错误或类似的事情。我相信顾问在场,因此没有验证。
    猜你喜欢
    • 1970-01-01
    • 2017-01-22
    • 1970-01-01
    • 2018-03-11
    • 1970-01-01
    • 2012-08-26
    • 1970-01-01
    • 2022-07-07
    相关资源
    最近更新 更多