Mongoid embeds_many验证错误信息是plural_objects +“无效”

时间:2011-12-22 17:56:30

标签: ruby-on-rails ruby mongoid

class Report
  include Mongoid::Document
  embeds_many :figures
end

class Figure
  include Mongoid::Document
  embedded_in :report
  field :legend
  validates_presence_of :legend
end

收到此错误消息:

Figures is invalid

如何在错误消息中获得多个同意?

2 个答案:

答案 0 :(得分:3)

从错误到可读消息的转换由ActiveModel而不是Mongoid处理,嵌入式模型被认为只是属性本地化的属性。

在这种情况下,如果您在i18n文件中使用以下内容,您将通过修改human_attribute_name返回的数字属性来获得单数形式而非复数形式:

en:
    mongoid:
        attributes:
            report:
                figures: Figure

答案 1 :(得分:1)

来自Mongoid docs

  

你可以随心所欲地命名你的关系,但如果班级不能   可以从名字中推断出Mongoid,也不能相反   你想要为宏提供一些额外的选项   告诉Mongoid如何将它们连接起来。

你应该只需要使用

class Report
  include Mongoid::Document
  embeds_many :figures, class_name: "Figure"
end

class Figure
  include Mongoid::Document
  embedded_in :report, class_name: "Report"
  field :legend
  validates_presence_of :legend
end