0

ユーザーがピンモデル内にリンクを投稿できるレールアプリがあります。説明するコードは次のとおりです。

アプリ/ビュー/ピン/_form.html.erb:

 <%= f.text_field :website, placeholder: "http://wwww.website.com" %>

そして私の見解では:

<% if @pin.website.blank? %>
<% else %>
  <a href="<%= @pin.website %>" target="_blank">
<% end %>

ユーザーが完全な URL ( http://www.website.com ) をフィールドに入力すれば問題なく動作しますが、「http://」を追加するのを忘れた場合 => (www.website.com) ページ明らかに壊れています。

ジェムauto_linkを使用することを考えていましたが、使用方法について少し混乱しています。これが私の設定です:

gemfile.rb

gem 'rails_autolink', '~> 1.1', '>= 1.1.6'

ビュー:

<% if @pin.website.blank? %>
<% else %>
  <%= auto_link(@pin.website) %>
<% end %>

アプリケーション.rb

require 'rails_autolink'

しかし、それは機能しません。リンクはプレーンテキストとして表示されます。何か助けてください、何が欠けていますか。私は他のスレッドを見てきましたが、私の問題を解決するものは何もないようです...

更新: ユーザーが www だけで URL を渡すと、現在はうまく機能しています。http://なしで、しかし、このような生のテキストを変換する方法はあります: website.com からhttp://www.website.com ?

4

1 に答える 1

1

自動リンクには、先頭に追加されたHTTPまたはHTTPSWeb アドレスが必要です。私の提案は、コントローラーレイヤーから行き、そこから解析することです。送信された Web サイトに「http」が含まれていない場合は、追加します。

于 2015-12-30T22:37:30.637 に答える