首页 > 解决方案 > 如何从 ruby​​ on rails 中删除 https 和 http

问题描述

我需要从表单的 url 中删除“https”和“http”,以便稍后显示图像,我得到了包含标题和 url 的表单,如下所示:

形式:

<%= form_for( @article, :html => { class: "form-test", role: "form"}) do |f| %>      
    <%= f.label :Titulo %>
    <%= f.text_field :title%>

    <%= f.label :Imagen%>
    <%= f.text_field :img%>

     <%= f.submit "Post"%>
<% end %>

看法:

<div class="header">
    <%= image_tag("https://#{@article.img}") %>
    <%= @article.title%>
</div>

我正在寻找选项我应该如何删除 https 如果您能告诉我,我将非常感激。

标签: ruby-on-railsruby

解决方案


Ruby的URI可能吗?

~ ᐅ irb                                                                                                                                                                                                                         [ruby-2.5.3] 
2.5.3 :001 > uri = URI('https://my.domain.com/my_image.png')
 => #<URI::HTTPS https://my.domain.com/my_image.png> 
2.5.3 :002 > [uri.hostname, uri.path].join
 => "my.domain.com/my_image.png" 

您可以为此定义一个助手:

def url_without_scheme(url)
  uri = URI(url)
  uri.hostname + uri.path
end

看法:

<div class="header">
  <%= image_tag(url_without_scheme @article.img) %>
  <%= @article.title%>
</div>

推荐阅读