Ответ 1
Похоже, вам нужно придерживаться протокола по вашей ссылке. Например. у вас есть www.userswebsite.com в вашей базе данных, это должно быть http://www.userswebsite.com
Я работаю над веб-сайтом, который позволяет пользователям создавать учетную запись. Одним из атрибутов при создании пользователя является персональный веб-сайт пользователя. Когда я пытаюсь использовать веб-сайт пользователей следующим образом:
<%= link_to @user.site, @user.url %>
Созданный URL-адрес: http://0.0.0.0:3000/www.userswebsite.com
Я думаю, что это из-за части @user ссылки_to... но как я могу заставить это ссылаться на www.userwebsite.com?
Похоже, вам нужно придерживаться протокола по вашей ссылке. Например. у вас есть www.userswebsite.com в вашей базе данных, это должно быть http://www.userswebsite.com
Вы можете добавить URL-адрес с протоколом, если он отсутствует:
module UrlHelper
def url_with_protocol(url)
/^http/i.match(url) ? url : "http://#{url}"
end
end
И затем:
link_to @user.site, url_with_protocol(@user.url), :target => '_blank'
Вы сохраняете URL-адреса без http://, поэтому их интерпретируют как относительные URL-адреса. Попробуй это: link_to @user.site, http://# {@user.url}"
Попробуйте потрясающий драгоценный камень Domainatrix:
Затем вы можете просто проанализировать URL-адрес на лету с помощью
<%= Domainatrix.parse(@user.url).url %>
Еще лучше, создайте в своей модели пользователя действие before_save
, которое анализирует URL-адрес перед его сохранением.
before_save :parse_url
def parse_url
if self.url
self.url = Domainatrix.parse(self.url).url
end
end
Вот несколько примеров того, что вы можете сделать с Domainatrix:
url = Domainatrix.parse("http://www.pauldix.net")
url.url # => "http://www.pauldix.net" (the original url)
url.public_suffix # => "net"
url.domain # => "pauldix"
url.canonical # => "net.pauldix"
url = Domainatrix.parse("http://foo.bar.pauldix.co.uk/asdf.html?q=arg")
url.public_suffix # => "co.uk"
url.domain # => "pauldix"
url.subdomain # => "foo.bar"
url.path # => "/asdf.html?q=arg"
url.canonical # => "uk.co.pauldix.bar.foo/asdf.html?q=arg"