【发布时间】:2015-08-27 17:58:19
【问题描述】:
我在 Rails 中有一个模型 (Show),它通过子域而不是标准 REST URL 访问。在文件app/helpers/url_helper.rb我有以下方法:
def show_url(show)
root_url(subdomain: show.subdomain)
end
在控制器中,这非常有效。我可以用puts show_url(@show) 对其进行测试,它会按预期输出节目的subdomain:http://test.example.com。但是,在集成测试中,该方法不起作用,而是使用 rails 生成的默认方法。如果我在那里运行puts show_url(@show),我只会得到http://example.com。如何在集成测试中使用此自定义 URL 帮助程序?
编辑:
routes.rb 关于此子域内容的部分:
constraints(lambda do |request|
request.subdomain.present? && request.subdomain != 'www'
end) do
get '/' => 'shows#show', as: :show
get '/edit' => 'shows#edit', as: :edit_show
end
【问题讨论】:
-
这可能会有所帮助...stackoverflow.com/questions/4160417/…
-
我没有从这个问题中得到太多。我的问题不在于测试 URL 帮助器(我对其进行了正常工作的测试),而特别是在集成测试中不提供帮助器方法(但是 Rails 生成的默认版本是)。
-
啊,好吧...也许这个问题对你有用? stackoverflow.com/questions/6721952/…
标签: ruby-on-rails ruby ruby-on-rails-4 integration-testing url-helper