【问题标题】:Rails adding error to :base not working as expectedRails 将错误添加到:base 未按预期工作
【发布时间】:2016-03-17 23:46:25
【问题描述】:

我有一个双重嵌套形式:

<%= simple_form_for @item, html: { class: "create-item-form" } do |item_builder| %>
  <div class="well">
  <%= item_builder.input :name, required: false, error: false, label: "item name" %>
  <%= item_builder.input :description, as: :text, required: false, error: false, label: "How do users earn this item?" %>
  <%= item_builder.input :tag_list, required: false, label: "Tags (these will help users find your item)" %>

  <%= item_builder.simple_fields_for :user_items do |user_item_builder| %>
    <%= user_item_builder.input :foo, as: :hidden, input_html: { value: "bar" } %>

    <%= user_item_builder.simple_fields_for :user_item_images do |user_item_images_builder| %>
      <%= user_item_images_builder.input :foo, as: :hidden, input_html: { value: "bar" } %>
      <%= user_item_images_builder.input :picture, as: :file, required: false,
                error: false, label: "Pictures of you earning this item",
                input_html: { multiple: true,
                              name: "item[user_items_attributes][0][user_item_images_attributes][][picture]" } %>
      <% end %>
  <% end %>
  </div>
  <div class="clearfix">
    <%= item_builder.submit 'Submit new item request', class: "btn btn-primary pull-right inherit-width" %>
  </div>
<% end %>

当用户没有为user_item_image 上传文件时,我需要显示一条错误消息。我写了一个自定义验证:

user_item_image.rb

class UserItemImage < ActiveRecord::Base

  include PicturesHelper

  attr_accessor :foo

  mount_uploader :picture, PictureUploader
  belongs_to :user_item
  validate :picture_size
  validate :has_picture

  private

  def has_picture
    errors.add(:base, 'You must include at least one picture.') if picture.blank?
  end
end

但我收到错误消息:

用户项目用户项目图片库您必须至少包含一张图片。

如何重写验证,使其不显示属性而只显示消息。

【问题讨论】:

    标签: ruby-on-rails validation activerecord


    【解决方案1】:

    为什么不使用

    validates :picture, presence: true
    

    在您的 useritem 模型上

    【讨论】:

    • :picture 属性在我的user_item_images 模型上,而不是我的user_item 模型上
    猜你喜欢
    • 1970-01-01
    • 2022-11-11
    • 1970-01-01
    • 2015-03-25
    • 1970-01-01
    • 2021-12-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多