[英]undefined method `count=' for #<User::ActiveRecord_Associations_CollectionProxy
我添加了一条if语句,以查看教师人数是否增加,因为这是“ classroom_show”,如果刷新页面或将页面重定向到该页面,它将自动创建通知。 我以为计数可以确保保存新条目
课堂控制器(正在执行操作的地方)
@classroom_teacher = ClassroomTeacher.new
if @classroom_teacher.save && @classroom.teachers.count +=1
@classroom.teachers.each do |teacher|
create_teacher_notification @classroom, teacher
end
end
当我尝试转到页面时,它给我一个错误。
NoMethodError未定义的方法“ count =”
你的意思是? 计数
有没有更好的方法来确保确实创建了“课堂老师”? 我不希望它具有独特性,因为可以将老师朗读到教室。 我已经尝试了几件事。
@classroom_teacher = ClassroomTeacher.build
和
@classroom_teacher = ClassroomTeacher.create
不起作用,因为未在此处为其定义构建和创建,但它们确实保存成功。
NoMethodError未定义的方法“ count =”
出现上述错误的原因是:
您正在尝试在@classroom.teachers
上调用count=
方法,该方法将返回ActiveRecord
集合
@classroom.teachers.count += 1 # is actually short hand for
@classroom.teachers.count = @classroom.teachers.count + 1
您可以尝试通过更改此内容来实现
count = @classroom.teachers.count # Save the teachers count in a variable
# Compare the count after save with the previous count
if @classroom_teacher.save && @classroom.teachers.count == count + 1
@classroom.teachers.each do |teacher|
create_teacher_notification @classroom, teacher
end
end
好像有一个关联,教室has_many:teachers-是这种情况吗?
如果是这样,我会:
@classroom.teachers.new
if @classroom.save
@classroom.teachers.each do |teacher|
create_teacher_notification @classroom, teacher
end
end
如果新的关联未保存,则保存将返回false。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.