undefined method `where' for Admin::Teacher:Module Did you mean? when
无法找到该Teacher方法,在model模型中,可能有Teacher方法而造成冲突。
在写controller控制器时,以下命名方式将会带来问题:
module Admin
module Teacher
class TeacherPhotosController < ApplicationController
# 这种命名方式可能会导致部分方法找不到
end
end
end
解决方法:
在每个方法前面加双冒号 ::
例如:在Teacher前面加 :: ,即可解决。
# 加上 ::
@teacher_photo = ::Teacher.find(params[:id])
但也有另一种一劳永逸的方法:
class Admin::Teacher::TeacherPhotosController < ApplicationController
# 将命名方式改成这样,就不会出现此类问题
end
# 不需要 ::
@teacher_photo = Teacher.find(params[:id])