从Rails中的控制器重新加载类

时间:2015-03-15 06:21:07

标签: ruby-on-rails ruby

当选择特定选项时,我需要能够重新加载一个类。除非我重新加载课程,否则不会发生变化。我不想为此目的重新启动整个应用程序。

我遇到了Rails控制台的reload!函数,我想知道我是否可以在我的控制器中使用这样的东西(只是简单的reload!不起作用)。

1 个答案:

答案 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