用户可以对派对进行描述。 用户也可以键入任何链接作为描述。
但是,在用户保存后,他输入的链接无法点击。 我必须复制链接地址并粘贴到浏览器中才能访问该网站。
以下是views/parties/_form.html.erb
:
<%= form_for(@party, multipart: true) do |f| %>
<div id="error_explanation">
<ul><%= @party.errors.full_messages.first if @party.errors.any? %></ul>
</div>
<div class="field">
<%= f.label :title %><br>
<%= f.text_field :title, :class => "form-control", placeholder: 'Type title' %>
</div>
<div class="field">
<%= f.label :location %><br>
<%= f.text_field :location, :class => "form-control", placeholder: 'Type location' %>
</div>
<div class="field">
<div class="form-group">
<label>time</label>
<%= f.datetime_select :time %>
</div>
</div>
<div class="field">
<%= f.label :description %><br>
<a style="text-decoration:none;" title="Suggest!" data-toggle="popover" data-trigger="hover" data-placement="top" data-content="Ticket? Any Link? Tell me more!"><%= f.text_area :description, :class => "form-control", :rows => "3" %></a>
</div>
<div class="field">
<%= f.label :image %><br>
<%= f.file_field :image %>
</div>
<p>
</p>
<div class="actions">
<%= f.submit "Let's post it", :class => "btn btn-primary", :id => "load", 'data-loading-text' => "Uploading...".html_safe %>
</div>
<p>
</p>
<% end %>
如果用户输入任何链接,如何将链接转换为可点击链接?什么时候显示它的描述?
For example, if a user typed,
"Hi we have party tomorrow at 12:00 pm.
Also more information is at www.facebook.com/samplepartybrabrabra
ticket is $5 per person."
答案 0 :(得分:0)
您可以使用variable_name.html_safe
来解释variable_name
中的文字并将其呈现为HTML。如果variable_name
来自用户生成的内容,请务必谨慎。
答案 1 :(得分:0)
Tl; dr 使用rails_autolink gem中的auto_link
视图帮助器。
答案很长您基本上有两种选择:
用户必须输入有效的HTML链接,然后可以像Anthony建议的那样呈现为HTML。您可以使用markdown或wysiwyg编辑器使用户更容易。
您让用户只在文本中输入一个URL(这就是您现在正在做的事情),您必须解析文本并用HTML链接替换每个URL。
就个人而言,我选择#2选项,特别是因为rails_autolink gem很容易。您可以保留原样。您只需稍后打印用户输入:
<div class="party-description">
<%= auto_link(@party.description) %>
</div>
和auto_link
会处理所有链接。