Rails 外部リンク [閉鎖]
概要
外部リンクを提供しようとしていますが、 http または https で始まる URL を指定しない限り、常に「localhost:3000」が先頭に追加されます。 www.google.com で始まるようにすると、外部リンクに移動することは拒否されますが、現在のページに結合されます。
<div class="col-10 d-flex justify-content-center gap-2">
<% @user.links.each do |link| %>
<% if link.url.length > 1%>
<div>
<%= link_to link.url ,target: "_blank", class: "btn btn-primary" do %>
<span><%= link.title %></span>
<% end %>
</div>
<% end %>
<% end %>
</div>
私のどこが間違っているのでしょうか?リンクからクリーンな URL を取得することを期待していました。しかし、localhost:3000/usersページにいると、localhost:3000/users/www.youtube.comが表示されます。
解決策
def external_link(link)
return link if link.include?('https://')
link.prepend('https://')
end
次に、コード内で以下を使用するだけです。
link_to external_link(link), target: '_blank', class: 'btn btn-primary'