我有两个模型,我正在使用事件和报告。报告和嵌入事件。我无法为特定事件创建新报告。
我认为我的报告控制器新动作需要看起来像这样:
@event = Event.find(params[:eventid])
@report = @event.report.build
在我的活动模型中,我有以下内容:
embeds_one :report
accepts_nested_attributes_for :report
当我尝试保存时,收到以下错误:
Mongoid::Errors::NoParent
这是我的报告模型
class Report
include Mongoid::Document
include Mongoid::Timestamps
field :test, type: String
embedded_in :event, :inverse_of => :report
embeds_many :report_details
accepts_nested_attributes_for :report_details,
:allow_destroy => true,
:reject_if => proc { |attributes|
attributes['name'].blank? && attributes['_destroy'].blank?
}
这是我的活动模型
class Event
include Mongoid::Document
include Mongoid::Timestamps
embeds_one :report
accepts_nested_attributes_for :report,
:allow_destroy => true,
:reject_if => proc { |attributes|
attributes['name'].blank? && attributes['_destroy'].blank?
}
提前致谢。
答案 0 :(得分:4)
确保在创建新报告时设置event_id
。
您可以在提示时使用@report = @event.report.build(params[:report])
或通过确保params哈希中包含'event_id'来实现此目的。