我在Rails中有一个Model(Show
),它是通过子域而不是标准REST URL访问的。在文件app/helpers/url_helper.rb
我有以下方法:在Rails中覆盖URL助手
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
这是一个Railscast on subdomain matching周围松散的基础。
这可能有帮助... http://stackoverflow.com/questions/4160417/how-to-import-rails-helpers-in-to-the-functional-tests –
我没有从这个问题得到很多。我的问题不在于测试URL助手(我对它的测试工作正常),而是特别指出,在集成测试(但是由Rails生成的默认版本)中不存在助手方法。 – RedBassett
啊,好的......也许这个问题适合你吗? http://stackoverflow.com/questions/6721952/rails-helpers-not-working-in-test-environment – jemminger