Ruby on rails 嵌套的白名单属性仍不允许

Ruby on rails 嵌套的白名单属性仍不允许,ruby-on-rails,activerecord,nested-forms,whitelist,Ruby On Rails,Activerecord,Nested Forms,Whitelist,我有三个模型:事件、事件用户、事件用户日 事件接受嵌套属性event\u user,它也接受event\u users\u day作为嵌套属性 class Event < ActiveRecord::Base has_many :event_users, :dependent => :destroy, :inverse_of => :event accepts_nested_attributes_for :event_users, :allow_destroy =>

我有三个模型:事件、事件用户、事件用户日

事件接受嵌套属性event\u user,它也接受event\u users\u day作为嵌套属性

class Event < ActiveRecord::Base
  has_many :event_users, :dependent => :destroy, :inverse_of => :event
  accepts_nested_attributes_for :event_users, :allow_destroy => true
end

class EventUser < ActiveRecord::Base
  belongs_to :event, :inverse_of => :event_users
  has_many :event_users_days, :dependent => :delete_all
  accepts_nested_attributes_for :event_users_days, :allow_destroy => true
end

class EventUsersDay < ActiveRecord::Base
  belongs_to :event_users, inverse_of: :event_users_days
  validates :event_users, :presence => true
end
在my controller event_user(我的控制器事件用户)和event_users_days(事件用户天数)的属性中,列出了白名单:

    @event_user = EventUser.new(params.permit(:event_id), params[:event_users].permit(:id, event_users_days_attributes: [:id, :event_day_id]))
但是,当我保存它时,只保存EventUser,因为服务器告诉我不允许使用event_users_天:

Unpermitted parameter: event_users_days

你知道我做错了什么吗?

Unpermitted参数错误是文字错误,因此你的表单生成了一个
事件用户天数
参数,而不是预期的
事件用户天数属性
参数,Rails正确地拒绝了该参数


我已经很长时间没有使用
嵌套表单了,如果您使用的是Rails 4,那么我不确定这是否是最佳选择(而且没有必要),但即便如此,我认为问题在于你使用的是
:event\u users
,而不是
@event\u users
——但一般来说,我建议切换到
simple\u form
,除非你使用的是旧的Rails(如果是的话,那么你在询问问题时应该指定)。

它工作得很好,我不得不使用@event\u用户而不是:event\u用户
Unpermitted parameter: event_users_days