Проблема заключалась в том, что я использую многодоменные вещи, поэтому мне пришлось использовать lvh.me, который разрешает localhost. Вы можете сделать то же самое, установив в вашем / etc / hosts
127.0.0.1 subdomain.yourapp.local
, а затем использовать этот домен.
Я переписал метод посещения Капибары следующим образом:
def visit(link)
super("mysubdomain.lvh.me:3000#{link}")
end
но проблема не исчезла, потому что, когда Capybara нажимал, например, ссылку, метод посещения не использовался, и мой хост не запрашивался. Который был? Я не знаю - вероятно, по умолчанию.
Таким образом, решение заключается в установке хоста и порта в настройках Capybara:
class ActionDispatch::IntegrationTest
include Capybara
Capybara.default_host = "subdomain.yourapp.local"
Capybara.server_port = 3000
# ... rest of stuff here
end