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

2024-01-11

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

Form:

<%= 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 %>

View:

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

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


Ruby's URI http://ruby-doc.org/stdlib-2.5.3/libdoc/uri/rdoc/URI.html maybe?

~ ᐅ 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

View:

<div class="header">
  <%= image_tag(url_without_scheme @article.img) %>
  <%= @article.title%>
</div>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何从 ruby​​ on Rails 中删除 https 和 http 的相关文章

随机推荐