我已经简化了上面的信息,但基本上问题是,如何调用FileSet.find(x).files并让files方法足够聪明以缩小基于运行时上下文返回的结果?
我已经探索了一点关联扩展,但这似乎没有完成这项工作。我希望这里存在一些东西。我正在拼命地将这个逻辑保留在模型中,而没有关注它的视图或控制器。如果在运行时评估它们,默认范围将起作用:)
期待一些建议:)
干杯,
布伦登
答案 0 :(得分:2)
您是否可以使用具有proc的命名范围来确定当前上下文并返回适当的条件? 文件中的内容如下:
named_scope :for_context, :conditions => lambda {
if only_normal?
{ :type => 'normal' }
elsif only_startup?
{ :type => 'normal' }
else
{}
end
}
然后你可以打电话:
FileSet.find(x).files.for_context