首页 > 解决方案 > 验证错误显示正在为 :category:Symbol 生成此“未定义方法 `full_message”

问题描述

我正在按照Rails 指南来实现这一点,但我收到了这个错误,我不完全确定如何修复它。

表单中的错误显示:

    <% if @group.errors.any? %>
        <div id="error_exp">
            <h2><%= pluralize(@group.errors.count, "error") %> prohibited this article from being saved:</h2>
            <ul>
                <% @group.errors.each do |error| %>
                    <li><%= error.full_message %></li>
                <% end %>
            </ul>
        </div>
    <% end %>

控制器创建操作:(我正在测试新组表单上的错误显示)

    def create
        @group = current_user.groups.build(group_params)

        if @group.save
            redirect_to user_groups_path(current_user)
        else
            render :new
        end
    end

模型验证:

class Group < ApplicationRecord
    has_many :cards, dependent: :destroy
    belongs_to :category
    belongs_to :user
end

class Category < ApplicationRecord
    has_many :groups
    has_many :users, through: :groups

    validates :name, presence: true
    validates_uniqueness_of :name, :case_sensitive => false
    
end

class Card < ApplicationRecord
    belongs_to :group

    validates :front,:back, presence: true
end

感谢您的帮助!

标签: ruby-on-railsvalidationactiverecord

解决方案


Rails 指南适用于6.1. 在此之前errors.each产生了|attribute,error| Rails 6.0Rails 6.1

根据您要使用的错误,我假设您低于 6.1:

<% @group.full_messages.each do |message| %>
  <li><%= message %></li>
<% end %> 

推荐阅读