0

我有一个可以动态添加的事件(日期时间 - 不幸的是,我在代码中将其拼错为发生)可以动态添加(感谢 Ryan Bates 的精彩教程:http ://railscasts.com/episodes/196 -nested-model-form-part-1?view=asciicast):

has_many :occurances, :dependent => :destroy
accepts_nested_attributes_for :occurance, :reject_if => lambda { |a| a[:when].blank? }, :allow_destroy => true'

 attr_accessible :occurances, :occurances_attributes, :occurance_id

然后是表格:

.control-group.occurance_fields
  = f.label "Date & Time", :class => 'control-label'
  .controls
    = f.fields_for :occurance do |o_form|
      = o_form.text_field :when, :class => 'datepicker'

在 event_controller 的新方法中:

 @event.occurances.build

我目前在提交表单时遇到问题:

Can't mass-assign protected attributes: occurance

如果我添加 attr_accessible :occurance我会收到以下错误:

unknown attribute: occurance

我在这里想念什么?我已经查看了其他一些关于类似问题的问题,但我无法将他们的解决方案转化为我的项目。

4

1 回答 1

0
attr_accessible: occurance_ids

accepts_nested_attributes_for :occurances, :reject_if => lambda { |a| a[:when].blank? }, :allow_destroy => true'

编辑:

您的 :occurance_id 在您的 :attr_accessible 中也无效。因为它是一个 has_many 关系,所以外键将在 Occurances 表中。

于 2013-02-15T20:05:39.110 回答