0
不能在任何地方找到接受的方式而不需要通过控制器考虑到attr_accissible不再支持创建模型的模型。如何创建无控制器考虑rails4强参数
是下面的方法正确吗?
在我的旧代码:
ModelName.create(course_id:680, user_id:25)
新的代码(现在我已经删除attr_accessible引发mass_assignment错误):
model = ModelName.new.tap do |m|
m.course_id = 680
m.user_id = 25
end
model.save!
(的作品,但看起来哈克)
Apparently,下面会不会因为without_protec工作重刑选项在Rails4去除
ModelName.create({course_id: 680, user_id: User.first.id}, without_protection: true)
感谢this question我读过有关强参数的控制器之外使用“ - link但即便我的从我的控制台以下:
raw_params = {course_id: Course.last.id, user_id: User.first.id}
parameters = ActionController::Parameters.new(raw_params)
ModelName.create(parameters.permit(:course_id, :user_id))
我得到错误
WARN -- : WARNING: Can't mass-assign protected attributes for ModelName: course_id, user_id
如果您的模型的属性的大规模分配是可选的,您可以通过在您的环境/开发中将此行'config.active_record.mass_assignment_sanitizer =:strict'更改为'config.active_record.mass_assignment_sanitizer =:logger'来避免此类情况。 RB文件 – anusha 2014-09-26 03:00:04