我对在rails上编码有点新意。如果你可以帮我解决我认为可能没有问题的问题,那将是很棒的。这是我的代码:
def create
@project = Project.new(params[:project])
if @project.save
redirect_to new_project_path
end
student=@project.student_str.split(";")
@users = User.where(:code => student)
@users.each do |c|
puts c.email
end
@users.each do |c|
puts "I'm here"
c.projects = "#{c.projects};#{@project.id}"
end
end
因此,在create方法中,每次创建一个新项目时,都会存储一个名为student_str的字符串,其中每个学生的ID号由“;”分隔。我使用split函数将该字符串拆分为数组,以获取学生ID的数组。我有 puts c.email 和 puts“我在这里”以确保循环正常工作。我在终端上得到了正确的输出。
这里的问题是
c.projects = "#{c.projects};#{@project.id}"
这根本不起作用。 执行此行时,我的模型不会更新。我没有遇到任何错误。 你能告诉我为解决这个问题我可能需要做些什么吗?
谢谢!
答案 0 :(得分:1)
更新项目属性后,您必须调用c.save
。否则,对象会更新,但不会更新数据库,因此下次加载时更改将会消失。