【发布时间】:2012-07-12 13:46:24
【问题描述】:
我现在才使用 Rails 几个月,所以我可能遗漏了一些明显的东西,但是如果一个属性受到 attr_accessible 或 attr_protected 的大规模分配保护,你如何设置该属性你先创纪录? (并且以仍然安全的方式进行。)
例如:
假设我正在开发一个应用程序,用于跟踪公司员工接受过培训的不同程序和流程。
作为此应用程序的一部分,我有三个模型:User、Course 和 TrainingClass。 User 代表员工,Course 代表可以培训员工的不同内容,TrainingClass 代表将在其中培训员工的特定课程。
TrainingClass 与 Course 模型(因为课程基本上只是课程的特定实例)和 User 模型(因为课程只有一个讲师,他是创建TrainingClass) 的用户。同样,Course 和User 模型都与TrainingClass 模型具有has_many 关系。
根据这些信息,我将如何为TrainingClass 创建新记录?
我可以说:
course.training_classes.build(user_id: user.id)
或
user.training_classes.build(course_id: course.id)
但这不是对user_id 或course_id 属性的批量分配吗?
在保持应用程序安全的同时做到这一点的最佳方法是什么?
【问题讨论】:
标签: ruby-on-rails ruby-on-rails-3 mass-assignment