【发布时间】:2015-02-06 10:32:00
【问题描述】:
我有一个工作应用程序。我想添加将服务于同一应用程序但具有不同数据的子域。我在一个 Foo 表中添加了一个子域字段,外键指向这个 Foo 表,只要我希望数据按子域过滤,例如 Bar 表添加了一个 foo_id。
ApplicationController 有一个 before_filter 设置 @foo:
foos = Foo.where(subdomain: request.subdomain)
@foo = foos.first if foos.count > 0
我希望 Bar 模型有一个使用 @foo 的默认范围,这样我就不必更改我调用 Bar 的所有位置。
default_scope { where(foo: @foo) }
这对于无子域 url 非常有效,其中@foo 为 nil,应用程序仅显示 foo_id 为 NULL 的数据。但它不适用于子域,即使 pry 让我看到 @foo 设置正确,default_scope 仍然选择 NULL foo_id。
那么在模型范围内使用 AppController 中的实例变量是不可能的吗?
【问题讨论】:
标签: ruby-on-rails scope subdomain