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