如何从Rails控制台运行Controller Action,但是设置request.shot?

时间:2013-04-15 13:23:58

标签: ruby-on-rails-3 rails-routing rails-console

我正在开发一个多租户应用程序,所以几乎所有内容(从路由开始)都希望有一个看起来像“tenant_id.myapp.com”的“request.host”。

我正在尝试从Rails控制台运行控制器操作,但我无法弄清楚这一点。

最简单的事情似乎是“app.get”,但我无法弄清楚如何设置主机。

我还看到an answer提到使用“ActionController :: TestProcess”,据我所知,已从Rails中删除(如果没有,我还没有找到如何包含它)

还有其他选择吗?

谢谢!
丹尼尔

1 个答案:

答案 0 :(得分:3)

我刚刚在我的控制台(Pry)中验证了它

# Send request with fake HTTP_HOST
>>app.get(app.root_path, nil, {"HTTP_HOST" => "123.myapp.com})
>>#=>200

# Then check if it works
>>app.request.env
>>#...
>># "HTTP_HOST" : "123.myapp.com"