首先,请原谅可怜的头衔。我知道我想解决的问题,但我认为我没有正确的语言来充分描述问题。
我有一个数据库,每个教学课程可以属于“教科书”或“目标”教学风格。目前,我根据用户的选择将这些信息(“教科书”或“目标”)保存在cookie中。
我提取这些信息,并希望根据值搜索与教科书或目标ID相关的记录。
目前,我有以下代码:
case coursetype
when "textbook"
activecourses = Course.find(topicid).textbook_children.where(active: true).order(:id)
@lessons = Video.joins(:textbook_parent).where('courses.id' => activecourses.pluck(:id)).order(:id)
else
activecourses = Course.find(topicid).targeted_children.where(active: true).order(:id)
@lessons = Video.joins(:targeted_parent).where('courses.id' => activecourses.pluck(:id)).order(:id)
end
不是很干。
我基本上希望写:
activecourses = Course.find(topicid).targeted_children.where(active: true).order(:id)
targeted_children 或 textbook_children 是某种形式的文本字符串,它变成一个符号(如果正确),但不知道该怎么做。
任何帮助将不胜感激。
对不起,如果我仍然不清楚。
PS。我自学了很多红宝石和铁轨。我敢肯定代码可以用更好的方式编写...我会杀死与可以帮助我改善的人一起工作的...但是...请不要判断!
答案 0 :(得分:0)
在任何引用符号或字符串的地方,都可以用包含符号或字符串的变量替换。
parent_type = (coursetype == 'textbook' ? :textbook_parent : :targeted_parent)
activecourses = Course.find(topicid).textbook_children.where(active: true).order(:id)
@lessons = Video.joins(parent_type).where('courses.id' => activecourses.pluck(:id)).order(:id)