当选择特定选项时,我需要能够重新加载一个类。除非我重新加载课程,否则不会发生变化。我不想为此目的重新启动整个应用程序。
我遇到了Rails控制台的reload!
函数,我想知道我是否可以在我的控制器中使用这样的东西(只是简单的reload!
不起作用)。
答案 0 :(得分:1)
正如评论中指出的那样,重新加载一个类并不是一个好主意,对于任何需要维护代码的人来说可能真的很混乱。
一种方法可能是将实现细节移动到他们自己的模块中,并根据管理员设置的内容来要求它们。我想坚持这个设置(在数据库中)并为控制器中的每个调用设置一个前置过滤器是明智的
module LDAP
def auth
puts "ldap"
end
end
module Devise
def auth
puts "devise"
end
end
class User
end
case auth_type
when "devise"
User.include Devise
when "ldap"
User.include LDAP
end
User.new.auth