0

我对在 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输入“我在这里”以确保循环正常工作。我在终端上得到了正确的输出。

这里的问题是

c.projects = "#{c.projects};#{@project.id}"

这似乎不起作用。执行此行时,我的模型未更新。我没有得到任何错误。你能告诉我我可能需要做些什么来解决这个问题吗?

谢谢!

4

1 回答 1

1

您必须c.save在更新项目属性后调用。否则,对象会更新,但不会更新数据库,因此下次加载它时,更改就会消失。

于 2013-07-19T12:23:19.997 回答