2015-02-06 51 views
0

我有一个工作的应用程序。我想添加将提供相同应用的子域,但使用不同的数据。我在一个Foo表中添加了一个子域字段,并且在我希望数据按子域过滤的任何地方指向此Foo表的外键,例如Bar表中添加了foo_id。Rails子域名和default_scope

的ApplicationController具有的before_filter,设置@foo:

foos = Foo.where(subdomain: request.subdomain) 
@foo = foos.first if foos.count > 0 

我想酒吧模式对使用@foo默认的范围,这样我就不必改变所有在那里我打电话的地方为酒吧。

default_scope { where(foo: @foo) } 

这完全适用无子域网址,其中@foo是零和应用程序只显示数据,其中foo_id为NULL。但它不适用于子域,即使pry让我看到@foo设置正确,default_scope仍会选择NULL foo_id。

因此,不可能在模型范围中使用来自AppController的实例变量?

回答