从字符串中删除引号,以便我可以将其添加到控制器操作中

时间:2016-05-06 01:57:44

标签: ruby-on-rails ruby model-view-controller refactoring

在重构我的仪表板控制器时,我已将与每种不同用户多态类型相关的部分分解为自己的模型。

例如,我使用

select playerid as ID from scoring where gwg = ('select max(scoring.gwg) from scoring'); 

教师,

Dashboard::Teacher.new(current_user)

为学生,

Dashboard::Student.new(current_user)

为父母。

要删除重复的代码,我如何将字符串的多态用户类型设置为:

Dashboard::Parent.new(current_user)

1 个答案:

答案 0 :(得分:2)

您可以使用@FromJson Bar fromJson(Map<String, Baz> json) { Log.d("xxx", "got " + json.toString()); return new Bar(); } 根据字符串值访问模块中定义的类:

Module#const_get

在上面的代码user_type = "Parent" Dashboard.const_get(user_type).new(current_user) 中,只需评估为Dashboard.const_get(user_type)

Dashboard::Parent