1
<%= form_for @post.comments.new do |f| %> 
    Name:<%= f.text_field :name %><br/> 
    Email:<%= f.text_field :email %><br/> 
    Body:<%= f.text_area :content %><br/> 
    <%= submit_tag "Comment" %> 
<% end %> 

<script>..</script><style>..</style>タグを削除/削除/削除する必要があります。Ruby on Rails:スクリプト、スタイルタグをテキスト入力から削除/削除/サニタイズできますか?

その他のオプションは、スクリプト、スタイルタグがある場合、入力フィールドは空と見なされます。そして、コメントは保存されません。

これらのタグとそのタグ内のコードを削除するにはどうすればよいですか?そして、どうやってhtmlタグとhtmlタグの中身を取り除くことができますか?

答えて

6

私が知る限り、Rails 3ではこれを行うことはできません。 sanitize gemを使用してください。

gem 'sanitize'をGemfileに追加し、bundle installを実行してください。それだけでそれを行う必要があります。

+0

YourApp::SANITIZE_FILTER = { :remove_contents => ['script'] } 

その後、あなたはヘルパーメソッドを追加することができますか?これを行うためにレール3に関数/メソッドはありませんか? – shibly

+0

@グル、私が知っているものではない。ドキュメントから特定のタグを削除することはできません。 – Dogbert

+0

これらの行はどこに追加しますか? require 'rubygems' require 'sanitize' – shibly

2

使用SanitizeHelper

string = '<span id="span_is"><br><br><u><i>Hi</i></u></span>' 
strip_tags(string) #This Will give you "Hi" 
+0

IはIRBでstrip_tagsを試み>が、エラーが発生しました、1.9.2-P180:010> strip_tags(列) NoMethodError:未定義のメソッドメイン用 'strip_tags':(IRB)からオブジェクト \t:10 \tから/パス/に/rbies/ruby-1.9.2-p180/bin/irb:16:in '

' – shibly

+1

' rails console'では 'helper.strip_tags(str)'を実行できます – Dogbert

+0

私は1.9.2-p180:015> helper.strip_tags(文字列) NameError:未定義のローカル変数またはメソッド「ヘルパー」(メイン)オブジェクト \t from(irb):15 \t /path/to/rubies/ruby-1.9.2-p180/bin/irbから:16: '

' – shibly

8

私はこの正確な目的のためにサニタイズ使用してきました。それは素晴らしい仕事をしています。

アプリに定数を追加:私はサニタイズの宝石を使用するのはなぜ

def sanitize_content(content) 
    content = Sanitize.clean(content, YourApp::SANITIZE_FILTER) 
end 
関連する問題