如何从 ruby​​ on rails 中删除 https 和 http

JUL*_*HAN 2 ruby ruby-on-rails

我需要从表单中的 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 %>
Run Code Online (Sandbox Code Playgroud)

看法:

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

我正在寻找如何删除 https 的选项,如果您能告诉我,我将不胜感激。

CAm*_*dor 5

也许是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" 
Run Code Online (Sandbox Code Playgroud)

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

def url_without_scheme(url)
  uri = URI(url)
  uri.hostname + uri.path
end
Run Code Online (Sandbox Code Playgroud)

看法:

<div class="header">
  <%= image_tag(url_without_scheme @article.img) %>
  <%= @article.title%>
</div>
Run Code Online (Sandbox Code Playgroud)