首页 > 解决方案 > 带有 simple_form gem 的 Hstore 错误消息 - Ruby on Rails

问题描述

我有一个嵌套形式:

= simple_form_for(@item) do |f|
  = f.input :name

  -# Nested form
  = f.simple_fields_for :content, OpenStruct.new(@item.content) do |builder| 
    - @item.category.fields.each do |field|
      = render "items/fields/#{field.field_type}", field: field, f: builder

我想在必填字段下显示一条错误消息(如果它为空)。目前,在我的Item模型中,我有一个验证块来检查hstore字段是否是必需的并且是否为空:

serialize :variations, Hash
store_accessor :variations
validate :validate_variations
validates_presence_of :name

def validate_variations
  category.fields.each do |field|
    if field.required? && variations[field.name].blank?
      errors.add field.name, "must not be blank"
    end 
  end
end

如果我使用一个简单的错误块,上面的代码就完美了:

- if target.errors.any?
  - target.errors.full_messages.each do |message|
    = message

但是当我想用户simple_form错误消息时,它不会触发任何东西。我的hstore领域:

= f.input field.name, error: "Please enter a valid #{field.name}"

有没有办法在当前字段下方显示hstore字段的错误消息?simple_form


红宝石:2.7.1,导轨:6.0.3

标签: ruby-on-railsrubysimple-formhstore

解决方案


推荐阅读