【发布时间】:2009-06-27 11:10:34
【问题描述】:
哇,疯狂的标题!但这就是问题所在。为了干掉我的学校网站管理系统应用程序,我将我的应用程序(FileSet)的一个模块设置为 restful 并将其放在一个地方。以前FileSet用于一般网站系统,也用于儿童学习区系统。除了一个细微差别之外,它们的行为完全相同。在儿童区,FileSet 文件分为启动和正常两类。启动文件是老师做的,正常的是孩子做的。现在在一般网站应用程序中,这种区别不相关,因此被忽略。这是困难的部分。我想在两种上下文中使用相同的控制器和视图。在运行时我知道一个文件集属于一般站点或这个学习区域,所以我可以说如果它在学习区域上下文中,我想限制 FileSet.find(x).files 只使用'正常的'命名范围。如果上下文是普通网站,那么我们根本不会使用命名范围。
我已经简化了上面的信息,但基本上问题是,我怎样才能调用 FileSet.find(x).files 并让 files 方法足够聪明以根据运行时上下文缩小返回的结果?
我对关联扩展进行了一些探索,但这似乎并没有起到作用。我希望这里有一些东西。我正在拼命地尝试将这个逻辑保留在模型中,而不是让视图或控制器与之相关。如果在运行时对默认范围进行评估,则默认范围将起作用:)
期待一些建议:)
干杯,
布兰登
【问题讨论】:
标签: ruby-on-rails activerecord scope