gpt4 book ai didi

ruby-on-rails-3 - 缺少要链接的主机!请提供 :host parameter, set default_url_options[ :host], 或设置 :only_path 为 true

转载 作者:行者123 更新时间:2023-12-04 18:45:02 26 4
gpt4 key购买 nike

我正在阅读 Rails 4 in Action。在使用 Rspec 和 Capybara 进行测试时,我遇到了上述错误。我的viewing_projects_spec.rb 看起来像这样:

require 'spec_helper'

feature "Viewing projects" do
scenario "Listing all projectcs" do
project = FactoryGirl.create(:project, name: "TextMate 2")
visit '/'
click_link 'TextMate 2'
expect(page.current_url).to eql(project_url(project))
end
end

其余的错误是 Failure/Error: expect(page.current_url).to eql(project_url(project)) .

我做了一些谷歌搜索,人们说将以下内容放在 config/environments/development.rb 中:
Rails.application.routes.default_url_options[:host] = 'localhost:3000'

不幸的是,这没有任何作用。

最佳答案

host 语句应该放在 config/environments/test.rb 而不是 development.rb 中,因为您正在运行测试。
添加
您看到“example.com”的原因是 Capybara 将其设置为默认主机。要更改它,只需在 spec_help 中添加以下行之后 require 'capybara'

Capybara.default_host = 'localhost:3000'
引用: https://rspec.lighthouseapp.com/projects/16211-cucumber/tickets/206
然后你的 url 应该与你在 test.rb 中设置的相匹配。
无论如何,我宁愿不要那么麻烦地使用 current_path直接地。

关于ruby-on-rails-3 - 缺少要链接的主机!请提供 :host parameter, set default_url_options[ :host], 或设置 :only_path 为 true,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16228731/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com