我对 Rails 很陌生,正在构建我的第一个“真正的”应用程序并且努力理解如何使关系正常工作。
我有一个测验模型和图标模型。每个测验都属于_一个图标,一个图标有_许多测验。(将图标视为一个类别)。
在我的“新/编辑”测验表格上,我想要一个选择框来选择正确的图标。此刻我有...
<%= collection_select(:quiz, :icon_id, Icon.all, :id, :title, :prompt => true) %>
在我的测验控制器中创建动作我有......
def create
@icon = Icon.find(params[:quiz][:icon_id])
@quiz = @icon.quizzes.build(params[:quiz])
if @quiz.save
flash[:success] = "New quiz created successfully!"
redirect_to @quiz
else
render 'new'
end
end
当我提交表格时,我得到一个
Can't mass-assign protected attributes: icon_id
我理解为 icon_id 的错误未在模型中分配为 attr_accessible 。
我可以使其可访问,因为没有真正的安全风险,或者我可以在传递给构建方法之前从测验哈希中删除 icon_id ,但这两个选项似乎都不是正确的做事方式。
这样做的正确方法是什么?
谢谢!