Ruby on rails 嵌套的白名单属性仍不允许
我有三个模型:事件、事件用户、事件用户日 事件接受嵌套属性event\u user,它也接受event\u users\u day作为嵌套属性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 =>
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