Ruby on rails Rails覆盖对象中的数据
当我试图编辑我的学生并更改他们拥有的科目时,我编辑的最后一个学生丢失了他的所有科目。。。有人能帮我吗?示例:为Josh添加了数学。给珍妮增加了数学和历史。乔希的主题现在是空的Ruby on rails Rails覆盖对象中的数据,ruby-on-rails,sqlite,Ruby On Rails,Sqlite,当我试图编辑我的学生并更改他们拥有的科目时,我编辑的最后一个学生丢失了他的所有科目。。。有人能帮我吗?示例:为Josh添加了数学。给珍妮增加了数学和历史。乔希的主题现在是空的 #students_controller def edit @subjects = Subject.all end def update @subjects = Subject.find(subjects_params) @subjects.each do |subject| @student
#students_controller
def edit
@subjects = Subject.all
end
def update
@subjects = Subject.find(subjects_params)
@subjects.each do |subject|
@student.subjects << subject
@student.save
end
if @student.update(student_params)
flash[:success] = "Success"
redirect_to students_path
else
flash[:danger] = "Error"
render :new
end
end
#学生#控制器
定义编辑
@subjects=Subject.all
结束
def更新
@主题=主题。查找(主题参数)
@受试者。每个人都做|受试者|
@student.subjects不清楚必须实现什么逻辑,但我认为您需要将subjects\u属性添加到student\u参数
方法中。并在Student
模型中添加accept\u嵌套的\u属性\u:subjects
之后你可以做类似的事情
def update
@student.update(student_params)
end
这将为选定的学生添加所需的科目。
有关嵌套属性的详细信息
您还可以看到simple\u nested\u form
gem,它包装了所有嵌套属性。谢谢!我试试看:)