在重构我的仪表板控制器时,我已将与每种不同用户多态类型相关的部分分解为自己的模型。
例如,我使用
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)
答案 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