Ruby on rails 可以在Rails 4中动态创建实例吗?
最重要的是,我有一个名为App_clients的模型,名为Twitter和Facebook的模型都继承了它:Ruby on rails 可以在Rails 4中动态创建实例吗?,ruby-on-rails,integration,omniauth,Ruby On Rails,Integration,Omniauth,最重要的是,我有一个名为App_clients的模型,名为Twitter和Facebook的模型都继承了它: Model App def initialize(provider,access_token) end Model Twitter < App def initialize(provider, access_token) @client = Twitter::API.new(access_token) end Model Facebook < App def ini
Model App
def initialize(provider,access_token)
end
Model Twitter < App
def initialize(provider, access_token)
@client = Twitter::API.new(access_token)
end
Model Facebook < App
def initialize(provider, access_token)
@client = Facebook::API.new(access_token)
end
Model应用程序
def初始化(提供程序、访问令牌)
结束
推特应用程序模型
def初始化(提供程序、访问令牌)
@client=Twitter::API.new(访问令牌)
结束
模型Facebook<应用程序
def初始化(提供程序、访问令牌)
@client=Facebook::API.new(访问令牌)
结束
我的问题是,是否可以在Apps_controller或Model App中使用一个方法来创建应用程序客户端的实例,具体取决于参数[:provider]?
我不想添加许多if或elsif来决定哪个是理想的客户
顺便说一句,我正在使用omniauth集成Twitter和Facebook的身份验证
非常感谢您的帮助当然有
你可以用
klass = "#{params[:provider].to_s}".constantize
instance = klass.new # provide arguments here
例如,如果您收到一个带有提供者的请求:“Twitter”,它将返回Twitter类
只需谨慎地执行此操作,并验证您获得的提供程序参数,以便用户不会将其用于不好的目的
也