Ruby on Rails – 如何从嵌套模型委派错误消息
class User include Mongoid::Document has_many :images accepts_nested_attributes_for :image end class Image include Mongoid::Document include Mongoid::Timestamps include Mongoid::Paperclip has_mongoid_attached_file :uploaded_image, :path => ":rails_root/public/uploads/:class/:id/:basename.:extension", :url => "public/uploads/" validates_attachment_content_type :uploaded_file, :content_type => "application/png", :message => "error massage" belongs_to :user delegate :url, :path, to: :uploaded_image, allow_nil: true, prefix: false end
如果:uploaded_image无效,如何将Image中的错误委托给用户?
例如:
user_image = user.images.build(uploaded_image: new_image.path) user_image.save
如果uploaded_image无效,应该引发错误。
Rails有validates_associated
助手(在Mongoid中也可用),它会调用valid?
在每个相关对象上。
validates_associated的默认错误消息是“无效”。 请注意,每个关联对象都将包含自己的错误集合; 错误不会冒泡到调用模型。
Rails指南:活动记录validation
class User include Mongoid::Document has_many :images accepts_nested_attributes_for :image validates_associated :images end
请注意 ,您不应将validates_associated :user
添加到Image
因为它会导致无限循环。
您可以访问嵌套图像的错误,如下所示:
<% if @user.errors.any? %> <%= pluralize(@user.errors.count, "error") %> prohibited this user from being saved:
<% @user.errors.full_messages.each do |msg| %> - <%= msg %>
<% end %>
<% if @user.images.any? %> <% @user.images.each do |image| %> <% if image.errors.any? %> -
<% image.errors.full_messages.each do |msg| %> - <%= msg %>
<% end %>
<% end %> <% end %>
<% end %> <% end %>
- Mongoid w / Rails,attr_accessible – >“找不到方法”
- 如何在mongoid中强制使用独特的嵌入式文档
- Mongoid排序模型基于数组大小,在其他Model(has_one)关系中
- 设置mongoid哈希字段值
- 在Ruby哈希中提取`Moped :: BSON :: Document`属性
- 如何使用rails和mongoid通过“计数”关联来查找记录?
- Mongoid Group By或MongoDb group by in rails
- 无法让mongoid使用Rails 4
- 我可以在ActiveRecord(或Mongoid)中为数据库连接和table_name配置线程安全的每个请求配置吗?