我在我的项目中添加了 Subdomain-fu。在 ApplicationController 我有 before_filter 它检查 url 并将 app.com 重定向到 www.app.com,将 www.subdomain.app.com 重定向到 subdomain.app.com 并检查帐户是否存在(如果不存在则重定向到主页):
before_filter :check_uri
def check_uri
if !subdomain?
redirect_to http_protocol + "www." + current_host + request.request_uri if !/^www\./.match(current_host)
elsif /^www\./.match(current_host)
redirect_to http_protocol + current_host.gsub(/^www\./, '') + request.request_uri
elsif !account_subdomain?
redirect_to http_protocol + "www" + current_host.gsub(account_subdomain, '')
end
end
上面的代码效果很好。但是在添加了这个片段之后,我的 Cucumber 测试,例如。这个:
Scenario: Successful sign up
Given I am an anonymous user
And an Accept Language header
And I am on the home page
When I follow "Join now!"
And ...
因错误而失败:
Webrat::NotFoundError: Could not find link with text or title or id "Join now!"
(eval):2:in `/^I follow "([^\"]*)"$/'
features/manage_users.feature:10:in `When I follow "Join now!"'
如果我评论这个 before_filter 一切正常。有人知道为什么吗?