
1
2
3
4
|
@unsolved_issues = Issue.unsolved_issues(@project.id, open_issues, issues, user_ids).group_by(&:assigned_to_id)
@otherproject_unsolve_issues = Issue.otherproject_unsolve_issues(@project.id, open_issues, issues, user_ids).group_by(&:assigned_to_id)
@project_issues = Issue.project_issues(@project.id, open_issues, issues, user_ids).group_by(&:assigned_to_id)
@other_project_issues = Issue.other_project_issues(@project.id, open_issues, issues, user_ids).group_by(&:assigned_to_id).group_by(&:assigned_to_id)
|
1
2
3
4
|
[:unsolved_issues, :otherproject_unsolve_issues, :project_issues, :other_project_issues].each do|option|
value = Issue.send(option, @project.id, open_issues, issues, user_ids).group_by(&:assigned_to_id)
instance_variable_set("@#{option}", value)
end
|
上面两段代码其实是等效的,但下面这段代码更易拓展和维护,使用了元编程动态派发send以及使用instance_variable_set为实例变量赋值,做到代码简洁易用
Ruby中的元编程
1.元编程常用方法
1
2
3
4
|
class Ruby
def
end
end
|
近期评论