标签: html-safe

如何从字符串中删除HTML标记

比方说我有:

@string = "it is a <a href="#">string</a>"
Run Code Online (Sandbox Code Playgroud)

我想以两种方式在我的应用程序的不同部分使用它:

  • 带有可点击的链接
  • 没有可点击的链接(但没有显示任何HTML标记)

第一个可以使用html_safe:

@string.html_safe
Run Code Online (Sandbox Code Playgroud)

这是一个字符串

我怎样才能实现第二个?

这是一个字符串.

ruby-on-rails html-safe ruby-on-rails-3

19
推荐指数
3
解决办法
2万
查看次数

在bootstrap popover rails 5 app中渲染部分?

我在我的rails应用程序中在引导程序弹出窗口中呈现部分问题.

partial总是呈现为纯文本(显示所有HTML标记等).

这是index.html.erb中的代码

<span class="has-popover"
      style="cursor:pointer;"
      data-toggle="popover"
      data-trigger="hover"
      data-container="body"
      data-placement="right"
      title="Lorem Ipsum"
      data-content= "<%= render :partial => 'envs/e1' %>" >
      <i class="fa fa-question-circle "  aria-hidden="true"></i>
</span>
Run Code Online (Sandbox Code Playgroud)

app.js我有这个片段

$(".has-popover").popover({
    html : true
});
Run Code Online (Sandbox Code Playgroud)

这是文件夹中的_e1.html.erb部分内容envs

<h2>Mauris euismod sollicitudin?</h2>

<p>Morbi sit amet tellus pellentesque, maximus eros a, aliquam nunc. Vivamus velit velit, vestibulum at eros eu, iaculis hendrerit tortor. Morbi ullamcorper purus at ornare ullamcorper. </p>

<br>

<p>Morbi sit amet tellus pellentesque, maximus eros a, aliquam nunc. Vivamus …
Run Code Online (Sandbox Code Playgroud)

html javascript ruby-on-rails html-safe bootstrap-popover

15
推荐指数
1
解决办法
549
查看次数

Ruby on Rails:.html_safe和sanitize()之间的区别

我的视图中有两段代码:

<%= sanitize('<h3>winter</h3>') %>

<%= '<h3>winter</h3>'.html_safe %>
Run Code Online (Sandbox Code Playgroud)

它们似乎都导致在提供的字符串中编码html标签.它们之间有什么区别,我应该何时使用?

sanitize html-safe ruby-on-rails-4 difference

14
推荐指数
1
解决办法
7271
查看次数

在Rails中强制HTML转义3

我遇到了rails自动转义的问题.它目前认为字符串是html_safe(它是),但出于显示目的,我需要它仍然逃避html.这是字符串采取的步骤.

my_string = render(:partial => "set_string", :locals => {:item => @item})
<%= my_string %>
Run Code Online (Sandbox Code Playgroud)

部分是基本的

<h2>Page Header</h2>
<strong><%= item.name %></strong>
<%= item.body %>
etc
Run Code Online (Sandbox Code Playgroud)

我的理解是因为我在视图中直接显示文本(h2等),它假设它是安全的,并且它也正确地逃避了项目输出,这使整个my_string安全.所以,当我尝试用它显示它时

<%= my_string %>
Run Code Online (Sandbox Code Playgroud)

它没有逃避剩余的HTML.我尝试添加h来强制转义,但这不起作用.

所以我的问题是,无论如何强制html转义安全字符串,而不是在字符串上调用会使其不安全的东西?

非常感谢你的帮助.

escaping html-safe ruby-on-rails-3

11
推荐指数
3
解决办法
6952
查看次数

在Rails中同时使用simple_format和html_safe

@post.content,我想要

1.simple_format,所以内容将有不同的行,而不是没有中断的单行

2.html_safe,因此用户可以粘贴一些<embed>视频链接,如youtubes

可以单独使用<%= simple_format @post.content %><%= @post.content.html_safe %>单独使用

但是当我一起使用它们时:<%= simple_format @post.content.html_safe %>html_safe不起作用,因此<embed>视频不会显示

你能告诉我如何同时启用<embed>代码simple_format吗?还是有其他解决方案来显示@post.content?谢谢!!!

ruby-on-rails html-safe

11
推荐指数
1
解决办法
6070
查看次数

Rails 3:在i18n中使用HTML形式帮助翻译

我正在使用自动表单标签帮助程序来创建我的表单标签并通过i18n支持将它们翻译,但是,我想在标签中包含HTML,而我无法弄清楚如何使HTML安全.

例如:

en:
  helpers:
    label:
      product:
        name: 'Your Product Name <small>Try to be creative</small>'
Run Code Online (Sandbox Code Playgroud)

结束为:

<label for="product_name">Your Product Name &lt;Try to be creative&gt;</label>
Run Code Online (Sandbox Code Playgroud)

但我希望它是:

<label for="product_name">Your Product Name <small>Try to be creative</small></label>
Run Code Online (Sandbox Code Playgroud)

有没有办法让我将翻译指定为html_safe,以便在输出之前不进行编码?

此外,这似乎是HTML设置的最具语义的方式,但如果我完全以错误的方式接近这一点,我愿意接受建议.

谢谢 :)

更新:

<%= form_for @product do |f| %>
  <%= f.label :name %>
  <%= f.text_field :name %>
<% end %>
Run Code Online (Sandbox Code Playgroud)

ruby-on-rails internationalization html-safe

10
推荐指数
2
解决办法
1万
查看次数

为什么在Rails 3中,<%= note.html_safe%>和<%= h note.html_safe%>会得到相同的结果?

感觉就像html_safe在String类中添加一个抽象,需要了解正在发生的事情,例如,

<%= '1 <b>2</b>' %>      # gives 1 &lt;b&gt;2&lt;/b&gt; in the HTML source code

<%= h '1 <b>2</b>' %>    # exactly the same as above

<%= '1 <b>2</b>'.html_safe %>      #  1 <b>2</b>  in HTML source code

<%= h '1 <b>2</b>'.html_safe %>    #  exactly the same as above

<%= h (h '1 <b>2</b>') %>  #  1 &lt;b&gt;2&lt;/b&gt;   wont' escape twice
Run Code Online (Sandbox Code Playgroud)

对于第4行,如果我们说,好的,我们相信字符串 - 它是安全的,但为什么我们不能逃脱呢?似乎要逃避它h,字符串必须是不安全的.

所以在第1行,如果字符串没有被转义h,它将自动转义.在第5行,h无法将字符串两次转义 - 换句话说,在<更改为之后&lt;,它再也无法逃脱它&amp;lt;.

那么发生了什么?起初,我认为 …

xss ruby-on-rails html-safe html-escape ruby-on-rails-3

9
推荐指数
1
解决办法
1万
查看次数

Rails 4 raw html_safe无效

我无法在视图中转义原始html标记

<% array =  @article.tags.collect { |p| (link_to p.name, '#') } %>
<%= array.join(' , ') %>
Run Code Online (Sandbox Code Playgroud)

Raw和html_safe

<% array =  @article.tags.collect { |p| raw (link_to p.name, '#') } %>
<% array =  @article.tags.collect { |p| (link_to p.name, '#').html_safe } %>
Run Code Online (Sandbox Code Playgroud)

给我这个输出,而不转义html标签

<a href="#">tag1</a> , <a href="#">tag2</a> , <a href="#">tag4</a> 
Run Code Online (Sandbox Code Playgroud)

ruby-on-rails html-safe ruby-on-rails-4

7
推荐指数
1
解决办法
5348
查看次数

如何使轨道3 I18n翻译自动安全?

我使用rails 3.有没有简单的方法告诉I18n尊重插值中使用的字符串'html safness'并默认使所有翻译的字符串html安全?所以,如果我有这个en.yml:

en:
  user_with_name: 'User with name <em>%{name}</em>'
Run Code Online (Sandbox Code Playgroud)

我使用t('user_with_name', :name => @user.name),我得到用户名html转义,但<em></em>保持原样?

automation internationalization html-safe ruby-on-rails-3

6
推荐指数
3
解决办法
2398
查看次数

在textareas中解析换行符而不允许所有html标签

我有一个textarea字段,用户可以在其中输入内容.当在页面上显示它们的条目时,rails会返回\n每个换行符,这对于页面上的html来说根本没有中断.

从我所收集,解决这个得到的标准方法是一个.gsub命令,替换\n<br />,然后.html_safe就结束,以确保<br />呈现.

问题是,我不想html_safe内容 - 仍然应该替换html,但<br />标签应该注入(非转义)内容.

建议表示赞赏.

escaping ruby-on-rails html-safe

5
推荐指数
2
解决办法
7680
查看次数